我知道 C# 项目的解决方案(我没有为任何其他项目测试过)
例如你有:
Project1\
Project2\
Solution1\Solution1.sln
Solution2\Solution2.sln
在解决方案目录中创建SolutionDefines.targets文件
Project1\
Project2\
Solution1\Solution1.sln
Solution1\SolutionDefines.targets
Solution2\Solution2.sln
Solution2\SolutionDefines.targets
Solution3\Solution2.sln
Solution3\|no target file|
在每个项目文件中添加:
<Import Project="$(SolutionDir)SolutionDefines.targets" Condition="exists('$(SolutionDir)SolutionDefines.targets')" />
在Solution1\SolutionDefines.targets 中添加:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DefineConstants>$(DefineConstants);TRACING_BUILD</DefineConstants>
</PropertyGroup>
</Project>
在Solution2\SolutionDefines.targets 添加:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DefineConstants>$(DefineConstants);ANOTHER_DEFINE</DefineConstants>
</PropertyGroup>
</Project>
在这种情况下,您有:
对于解决方案 1 - 所有项目都添加了 TRACING_BUILD 定义
对于解决方案 2 - 所有项目都添加了 ANOTHER_DEFINE 定义
对于解决方案 3 - 所有项目 - 未添加定义
在这种方法中,您必须将具有解决方案范围定义的所有解决方案存储在单独的目录中