使用解决方案信息的msbuild脚本

时间:2011-04-05 17:50:06

标签: visual-studio-2010 msbuild

我有一个csproj文件,是两个不同的Visual Studio解决方案的一部分。项目文件应该能够略有不同,具体取决于它将使用的解决方案。我需要的是一个可用作'条件'的东西 - 一个名为例如$(SolutionName)的属性 - 自动填充。 至少,这是我的想法。我没有找到类似的东西。

我还考虑过导入公共部分的两个小项目文件。我想这会阻止在Visual Studio中编辑所有这些属性。它只会在活动的“主文件”中写入更改,对吗?

那么,有没有其他方法可以在项目级别使用解决方案信息进行区分?

1 个答案:

答案 0 :(得分:7)

原来有一个名为$(SolutionName)的属性。试试这个;首先将环境变量设置为:

> set MSBuildEmitSolution=1

然后使用MSBuild从同一命令行构建解决方案文件

> MSBuild My.sln

您将找到解决方案文件的MSBuild项目转换,它将命名为 My.sln.metaproj

只需在文本编辑器中打开它,即可看到其他属性。检查此项目文件中的“Build”目标,您可以看到所有这些属性在构建项目时都会传递给MSBuild任务,因此您应该能够根据任何属性区分条件。