Visual Studio 2013。
我在csproj文件中引用了一个外部DLL:
<ItemGroup>
<Reference Include="NameOfDll">
<HintPath>PathToDllNameOfDll.dll</HintPath>
</Reference>
我希望这个引用在编译器符号存在时起作用,而在编译器符号不存在时不起作用。(为了解决下面的第一个注释,假设编译器符号被称为Fred。)
这个问题[有条件引用]让我觉得我可以向上面显示的Reference元素添加一个名为Condition的属性,但我无法计算出给该属性什么值来实现我想要的效果。
我很高兴能在VS UI中找到这样做的方法,但我会采取任何方法。
条件编译符号位于DefineConstants
MSBuild属性中。检查是否包含您的符号:
<Reference Include="NameOfDll" Condition="$(DefineConstants.Contains('Fred'))">
<HintPath>PathToDllNameOfDll.dll</HintPath>
</Reference>
为符号选择一个独特的名称。不是像Debug或Trace这样可以是另一个常量的子字符串的东西。