【问题标题】:Post Build conditional that checks for a string containing another string (instead of ==)Post Build 条件检查包含另一个字符串的字符串(而不是 ==)
【发布时间】:2012-02-26 09:42:18
【问题描述】:

我有一个这样的后期构建事件:

如果不是 "$(OutDir)" == "Binaries\" "$(SolutionDir)Tools\NuGet.exe" pack "$(ProjectDir)MyAssembly.nuspec" -BasePath "$(ProjectDir)$(OutDir). "

但我真正想做的是检查 $(OutDir) 是否包含单词 Binaries

有没有办法做到这一点?我试过了:

如果不是 "$(OutDir)".Contains("Binaries") "$(SolutionDir)Tools\NuGet.exe" pack "$(ProjectDir)MyAssembly.nuspec" -BasePath "$(ProjectDir)$(OutDir) 。”

但它不起作用。

那么,作为奖励,“构建后”事件应该是什么语言?

【问题讨论】:

    标签: visual-studio visual-studio-2010 msbuild post-build-event


    【解决方案1】:

    原来是 MS-Dos。所以大多数批处理文件类型的东西都是允许的。

    这是我最终使用的命令:

    @Echo off&Setlocal EnableDelayedExpansion
    设置 BinariesVar=二进制文件
    设置“PathDir=$(OutDir)”
    IF "!PathDir:%BinariesVar%=!" NEQ "%PathDir%" (如果 $(ConfigurationName) == Release "$(SolutionDir)Tools\NuGet.exe" pack "$(ProjectDir)MyAssembly.nuspec" -BasePath "$(OutDir).") 否则(如果 $ (ConfigurationName) == Release "$(SolutionDir)Tools\NuGet.exe" pack "$(ProjectDir)MyAssembly.nuspec" -BasePath "$(ProjectDir)$(OutDir).")

    这将使用第一个路径是构建不是通过 TFS 和 TFS 构建的第二个路径。

    【讨论】:

    • 嗯...为什么要使用旧的、无法管理、无法维护的 cmd 样式的构建后事件而不是 MSBuild 的 AfterBuild 事件甚至 TFS 自定义活动?
    猜你喜欢
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    相关资源
    最近更新 更多