如何从命令行传递msbuild条件?

时间:2013-07-22 15:19:51

标签: msbuild command-line-arguments conditional-statements

我有一个目标作为构建的一部分,我希望在评估某些命令行检查时跳过:

<Target Name="RunSomeDependencyVerification" Condition="!Exists('$(SkipVerification)')">
....

我想从控制台传递跳过验证,以便:

msbuild mybuild.dev.proj /p:SkipVerification

我的构建脚本抱怨未定义“SkipVerification”属性。我找到了<PropertyGroup />的文档,但似乎不仅定义了属性,还设置了值,这不是我想要的。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

使用原始msbuild文件中的默认值定义属性。

<PropertyGroup>
    <SkipVerification Condition="'$(SkipVerification)'==''">False</SkipVerification>
</PropertyGroup>

“存在”检查不适用于“propertyname”,无论您是否指定。检查您房产的价值。

<Target Name="RunSomeDependencyVerification" Condition="'$(SkipVerification)'=='True'">

然后这个。

/p:Configuration=Debug;SkipVerification=True

答案 1 :(得分:0)

Msbuild说SkipVerification未定义,因为它不是:Exists用于文件或目录,不用于属性。试试这个:

msbuild mybuild.dev.proj /p:SkipVerification=true

然后检查值:

<Target Name="RunSomeDependencyVerification"
        Condition="'$(SkipVerification)'!='true')">