MSBuild 属性和变量重载
假设我启动了一个构建脚本,定义名为 SampleScript
,指定参数 /p:MyPrefix=Custom
。脚本中有以下代码:
<PropertyGroup Condition="$(BuildDefinitionName)=='SampleScript'">
<MyPrefix>Default</MyPrefix>
</PropertyGroup>
据我所知,首先将 MyPrefix 设置为“自定义”,然后将其重载为“默认”(我对吗?)。如果是这样,有什么方法可以使用户指定的参数具有更高的优先级,从而使其不会过载?
Let's say I launch a build script, definition named SampleScript
, specifying the parameter /p:MyPrefix=Custom
. There is the following code in the script:
<PropertyGroup Condition="$(BuildDefinitionName)=='SampleScript'">
<MyPrefix>Default</MyPrefix>
</PropertyGroup>
As I get, first MyPrefix is set to "Custom", then it's overloaded to "Default" (am I right?). If so, is there any way to make a user-specified parameter more prioritized, so it's not overloaded?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您只能通过动态更改目标内的值来重载在命令行上指定的属性...
在上面的示例中,给定命令行提供的值,“FromStaticProperty”将被忽略,但“FromDynamicProperty”将被忽略用过的。
摘自 MSBuild 诡计技巧#27
You can only overload a property specified on the command line by dynamically changing the value inside a target...
In the above example, the "FromStaticProperty" will be ignored given the value supplied from the command line, but the "FromDynamicProperty" will be used.
Excerpted from MSBuild Trickery trick #27