gpt4 book ai didi

.net - MsBuild 15 中每个 TargetFramework 的条件

转载 作者:行者123 更新时间:2023-12-04 00:25:29 27 4
gpt4 key购买 nike

使用新的 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>

最佳答案

已经定义了各种可以使用的预处理器符号。来自 docs :
.NET 框架


框架/版本
象征


.NET 框架(任何版本)
网络架构

.NET 框架 2.0
网20

.NET 框架 3.5
网35

.NET 框架 4.0
网40

.NET 框架 4.5
网45

.NET 框架 4.5.1
NET451

.NET 框架 4.5.2
NET452

.NET 框架 4.6
网46

.NET 框架 4.6.1
网461

.NET 框架 4.6.2
网462

.NET 框架 4.7
网47

.NET 框架 4.7.1
NET471

.NET 框架 4.7.2
NET472

.NET 框架 4.8
网48

.NET 标准


框架/版本
象征


.NET 标准(任何版本)
网标

.NET 标准 1.0
网络标准1_0

.NET 标准 1.1
网络标准1_1

.NET 标准 1.2
网络标准1_2

.NET 标准 1.3
网络标准1_3

.NET 标准 1.4
网络标准1_4

.NET 标准 1.5
网络标准1_5

.NET 标准 1.6
网络标准1_6

.NET 标准 2.0
网络标准2_0

.NET 标准 2.1
网络标准2_1

.NET 核心


框架/版本
象征


.NET [Core](任何版本)
网芯APP

.NET 核心 1.0
NETCOREAPP1_0

.NET 核心 1.1
NETCOREAPP1_1

.NET 核心 2.0
NETCOREAPP2_0

.NET 核心 2.1
NETCOREAPP2_1

.NET 核心 2.2
NETCOREAPP2_2

.NET 核心 3.0
网芯APP3_0

.NET 核心 3.1
网芯APP3_1

.NET 5+


框架/版本
象征


.NET 5.0
NET5_0


例如:

#if NETSTANDARD1_6
Console.WriteLine("This is .Net Standard 1.6");
#endif

#if NETCOREAPP2_0
Console.WriteLine("This is .Net Core 2.0");
#endif

关于.net - MsBuild 15 中每个 TargetFramework 的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42754123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com