我正在尝试为MSBuild属性设置默认值.说我从这开始:
<Choose>
<When Condition="..something..">
<PropertyGroup>
...
<MySetting>true</MySetting>
<PropertyGroup>
</When>
...
</Choose>
Run Code Online (Sandbox Code Playgroud)
如果条件不成立,则MySetting将为''.所以不应该把它设置为假?
<PropertyGroup>
<MySetting Condition="'$(MySetting)'==''">false</MySetting>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
稍后,我想在条件中使用MySetting,而不必测试=='true',如下所示:
<PropertyGroup Condition="$(MySetting)">
...
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
然而,当我将这个项目加载到Visual Studio中时,它抱怨指定的条件"$(MySetting)"的计算结果为""而不是布尔值.
因此,检查''将属性赋值为false的条件似乎不正确.我究竟做错了什么?
在MSBuild中,您正在处理字符串,因此您将获得''而不是false...如果要将其默认为'false'并通过命令行覆盖,只需在脚本中的现有条件块上方声明一个属性组:
<PropertyGroup>
<MySetting>false</MySetting>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
您在下面的条件块可以将其设置为true,或者您也可以通过命令行设置它,如下所示:
MSBuild.exe MyMSBuildFile.csproj /p:MySetting=true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3300 次 |
| 最近记录: |