我有一个csproj文件,是两个不同的Visual Studio解决方案的一部分。项目文件应该能够略有不同,具体取决于它将使用的解决方案。我需要的是一个可用作'条件'的东西 - 一个名为例如$(SolutionName)的属性 - 自动填充。 至少,这是我的想法。我没有找到类似的东西。
我还考虑过导入公共部分的两个小项目文件。我想这会阻止在Visual Studio中编辑所有这些属性。它只会在活动的“主文件”中写入更改,对吗?
那么,有没有其他方法可以在项目级别使用解决方案信息进行区分?
答案 0 :(得分:7)
原来有一个名为$(SolutionName)的属性。试试这个;首先将环境变量设置为:
> set MSBuildEmitSolution=1
然后使用MSBuild从同一命令行构建解决方案文件
> MSBuild My.sln
您将找到解决方案文件的MSBuild项目转换,它将命名为 My.sln.metaproj 。
只需在文本编辑器中打开它,即可看到其他属性。检查此项目文件中的“Build”目标,您可以看到所有这些属性在构建项目时都会传递给MSBuild任务,因此您应该能够根据任何属性区分条件。