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

Mic*_*ael 4 msbuild visual-studio-2010

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

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

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

Bri*_*ler 7

事实证明,有一个名为$(SolutionName)的属性.试试这个; 首先将环境变量设置为:

> set MSBuildEmitSolution=1
Run Code Online (Sandbox Code Playgroud)

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

> MSBuild My.sln
Run Code Online (Sandbox Code Playgroud)

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

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