我的解决方案中有一个主要项目和几个家属。我希望我的主项目只有一个引用依赖项目的条件(编译符号)。
我尝试将此代码添加到每个dependend项目的项目文件中:
<ItemGroup Condition="$(DefineConstants.Contains('SomeConstant'))">
<ProjectReference Include="..\DependentProj1\DependentProj1.csproj">
<Project>{7d971fa6-9225-4d54-b21c-077eb46c5dd4}</Project>
<Name>DependentProj1</Name>
</ProjectReference>
</ItemGroup>
在这种情况下,将构建所有dependend项目,并且只将一个二进制文件复制到主输出。它不适合我。
我也尝试过:
<Choose>
<When Condition="$(DefineConstants.Contains('SomeConstant'))">
...
</When>
</Choose>
但由于某些原因,它不能按我的意愿工作。
当我更改条件编译符号时,有人可以建议我如何构建一个依赖项吗?
谢谢!
答案 0 :(得分:0)
考虑使用类似的东西
<PropertyGroup>
<SomeConstantProp>...</SomeConstantProp>
<DeclareConstants Condition="'$(SomeConstantProp)' != ''">
$(DeclareConstants); yourConst
<ItemGroup Condition="'$(SomeConstantProp)' != ''">
<ProjectReference Include="..\DependentProj1\DependentProj1.csproj">
<Project>{7d971fa6-9225-4d54-b21c-077eb46c5dd4}</Project>
<Name>DependentProj1</Name>
</ProjectReference>
</ItemGroup>