如何基于编译符号有条件地引用DLL



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这样可以是另一个常量的子字符串的东西。

相关内容

  • 没有找到相关文章

最新更新