[英]MsBuild task and scope of properties
我有一个目标构建的构建项目
<Target Name="Build">
<Message Text="Version : $(FullVersionNr)" />
<MSBuild Projects="@(WebProj)" Properties="WebProjectOutputDir=$(SitePublishPath);OutDir=$(SitePublishPath1);Configuration=$(Configuration)" />
<Message Text="Version : $(FullVersionNr)" />
在构建过程中,我将$(FullVersionNr)设置为精确的装配编号,最后不是这个
我甚至在另一个文件中声明了$(FullVersionNr)道具
<Import Project="Common.proj"/>
而且它没有出来。
它只是从父项目到子项目的单向通信,我希望它是双向的
这篇MSDN文章应该为您提供一些如何实现这一目标的想法: MSBuild属性 。 更具体地说,这篇博文应该回答你的范围问题: MSBuild脚本中的属性和项目的范围 。 请务必阅读最后的摘要。
因此,如果您正在批处理多个项目,则当您第二次访问$(FullVersionNr)
时,本地上下文可能尚未合并回全局上下文,或者一个本地上下文已覆盖另一个(即两个子项)项目,第一次更新构建,但第二次没有)。
一种可能的解决方案是使用MSDN文章中描述的注册表属性,并仅在更新其值时编写该属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.