如何根据编译符号有条件地引用 DLL?
How to conditionally reference a DLL based on a compilation symbol?
Visual Studio 2013.
我有一个外部 DLL,我在 csproj 文件中像这样引用它:
<ItemGroup>
<Reference Include="NameOfDll">
<HintPath>Path\To\Dll\NameOfDll.dll</HintPath>
</Reference>
我希望此引用在编译器符号存在时起作用,而在该编译器符号不存在时不起作用。 (为了解决下面的第一条评论,假设编译器符号称为 Fred。)
这个问题
[ Conditional Reference ]
让我觉得我可以向上面显示的 Reference 元素添加一个名为 Condition 的属性,但我无法计算出为该属性赋予什么值来实现我想要的效果。
我很高兴能在 VS 中提供一种方法来执行此操作UI,但我会采用任何方法。
条件编译符号在 DefineConstants
MSBuild 属性 中。检查这是否包含您的符号:
<Reference Include="NameOfDll" Condition="$(DefineConstants.Contains('Fred'))">
<HintPath>Path\To\Dll\NameOfDll.dll</HintPath>
</Reference>
为符号选择一个独特的名称。不能是 Debug 或 Trace 等常量的子字符串。
Visual Studio 2013.
我有一个外部 DLL,我在 csproj 文件中像这样引用它:
<ItemGroup>
<Reference Include="NameOfDll">
<HintPath>Path\To\Dll\NameOfDll.dll</HintPath>
</Reference>
我希望此引用在编译器符号存在时起作用,而在该编译器符号不存在时不起作用。 (为了解决下面的第一条评论,假设编译器符号称为 Fred。)
这个问题 [ Conditional Reference ] 让我觉得我可以向上面显示的 Reference 元素添加一个名为 Condition 的属性,但我无法计算出为该属性赋予什么值来实现我想要的效果。
我很高兴能在 VS 中提供一种方法来执行此操作UI,但我会采用任何方法。
条件编译符号在 DefineConstants
MSBuild 属性 中。检查这是否包含您的符号:
<Reference Include="NameOfDll" Condition="$(DefineConstants.Contains('Fred'))">
<HintPath>Path\To\Dll\NameOfDll.dll</HintPath>
</Reference>
为符号选择一个独特的名称。不能是 Debug 或 Trace 等常量的子字符串。