2013-07-22 67 views
1

我有一個目標作爲我構建的一部分,我希望在一些命令行檢查評估跳過:如何從命令行傳遞msbuild條件?

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

我想通過跳過驗證從控制檯使得:

msbuild mybuild.dev.proj /p:SkipVerification 

我的構建腳本抱怨說「SkipVerification」屬性沒有定義。我找到了<PropertyGroup />的文檔,但它似乎不僅定義了屬性,而且還設置了值,這不是我所追求的。

我錯過了什麼?

回答

0

Msbuild說SkipVerification未定義,因爲它不是:Exists是用於文件或目錄,而不是用於屬性。試試這個:

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

然後檢查值:

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

與你原來的MSBuild文件的默認值定義你的財產。

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

「存在」檢查不適用於「propertyname」,無論您是否指定它。檢查你的財產的價值。

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

然後這個。

/p:Configuration=Debug;SkipVerification=True 
+0

Configuration = Debug;不是你需要的一部分,我只是想展示如何在命令行中指定多個屬性。 – granadaCoder