能否在MSBuild项目之间传递属性?

4

是否可以从一个msbuild项目传递属性到另一个项目?比如说,在一个.proj文件中有一个名为PropertyName="Foo"的属性。我们能否从另一个.proj文件中访问它,也就是在另一个msbuild项目中使用“$(Foo)”?

3个回答

5

有一种方法是在调用下一个脚本时传递属性,例如:

<MSBuild Projects="another.proj" Properties="PropertyName=$(Foo)" />

4
通过在需要使用该属性的文件中使用导入元素
<Import Project="ProjectPath"/>

在这种情况下,脚本之间会存在交叉引用。可以吗? - Dmitrii Lobanov
评估顺序是如何确定的?导入项目的属性和项目组首先被处理吗?当前文件中的ItemGroups和属性首先被处理吗? - Maslow
我认为评估是由顺序决定的。如果你在开始时导入项目属性和项目,它们将首先被处理。如果你在最后导入,导入的项目属性和项目将最后被处理。 这就是为什么在csproj中导入"Microsoft.CSharp.targets"文件的原因是最后进行的,这样就可以在csproj中设置值。 - Julien Hoarau

0

尝试使用$(MSBuildArguments)变量。我知道它在TFS中可以工作,但我不确定它是否在命令提示符中起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接