【发布时间】:2017-08-02 21:47:15
【问题描述】:
使用新的 MsBuild 版本,在 .csproj 项目中定位多个框架和框架版本非常容易:
<TargetFrameworks>net40;net45;net461;netcoreapp1.1</TargetFrameworks>
现在,我如何为它们中的每一个定义一个常量,以便我可以让某些代码仅作为例如的一部分。 netcoreapp1.1 通过而不是完整的框架编译?
我希望能够添加一个像这样的预处理器指令:
#if NET_CORE
// some code
#endif
对于完整的 .NET Framework 和可能的 .NET Standard 也是如此。
我发现的其他问题没有采用新的<TargetFrameworks> 方法将框架定义为帐户。像这样的东西不起作用:
<DefineConstants Condition=" '$(TargetFramework)' == '.NETCoreApp' ">NET_CORE</DefineConstants>
【问题讨论】:
-
符号here 对你有用吗?
-
嗯,.NET Core 没有,但我可以通过
#if NET40 || NET45 || NET461和#else处理。谢谢@DavidG!您应该将其发布为答案,以便我接受。 -
有关信息,他们现在为 .Net Core 添加了符号,请参阅我的更新答案:)