【发布时间】:2015-04-07 21:12:27
【问题描述】:
Visual Studio 2013。
我有一个外部 DLL,我在 csproj 文件中像这样引用它:
<ItemGroup>
<Reference Include="NameOfDll">
<HintPath>Path\To\Dll\NameOfDll.dll</HintPath>
</Reference>
我希望此引用在编译器符号存在时起作用,并且在该编译器符号不存在时不起作用。 (为了解决下面的第一条注释,假设编译器符号称为 Fred。)
这个问题 [Conditional Reference] 让我觉得我可以在上面显示的 Reference 元素中添加一个名为 Condition 的属性,但我无法确定赋予该属性的值以实现我想要的效果。
我很高兴能在 VS UI 中获得这样做的方法,但我会采取任何方法。
【问题讨论】:
-
@HansPassant 如果这有助于您理解问题,请假设编译器符号名为 Fred。编译器符号是构建属性吗?
-
条件编译器符号位于 DefineConstants 构建属性中。您将检查 DefineConstants 在条件中是否包含一些字符串。类似
Condition="$(DefineConstants.Contains('Fred'))" -
@mikez 请在答案中提供更多细节,我会标记为正确
-
请接近的选民解释一下
标签: c# visual-studio-2013 csproj compiler-directives