gpt4 book ai didi

c# - 如何在 .Net Core 中使用自定义预处理器指令

转载 作者:可可西里 更新时间:2023-11-01 08:20:49 26 4
gpt4 key购买 nike

我正在尝试在 .Net 核心中使用预处理器指令,但我无法确定设置指令的正确方法:

static void Main(string[] args)
{
Console.WriteLine("Hello World!");
#if MAC
Console.WriteLine("MAC");
#else
Console.WriteLine("NOT MAC");
#endif
}

我已经从命令行尝试了各种排列来让它工作,但我似乎遗漏了一些东西。这是我运行各种构建和运行命令时的 shell 输出:

~/dev/Temp/DirectiveTests $ dotnet msbuild /p:MAC=TRUE
Microsoft (R) Build Engine version 15.1.548.43366
Copyright (C) Microsoft Corporation. All rights reserved.

DirectiveTests -> /Users/me/dev/Temp/DirectiveTests/bin/Debug/netcoreapp1.1/DirectiveTests.dll
~/dev/Temp/DirectiveTests $ dotnet run /p:MAC=true
Hello World!
NOT MAC
~/dev/Temp/DirectiveTests $ dotnet run
Hello World!
NOT MAC

我根据 dotnet --version 使用工具版本 1.0.1

有谁知道如何使用 .net 核心从命令行正确设置指令?

最佳答案

您需要设置的是 /p:DefineConstants=MAC 注意这将覆盖项目中设置的常量,例如 DEBUGTRACE可以设置为您可能使用的完整版本

用于调试构建

dotnet msbuild /p:DefineConstants=TRACE;DEBUG;NETCOREAPP1_1;MAC /p:Configuration=Debug

对于发布构建

dotnet msbuild /p:DefineConstants=TRACE;NETCOREAPP1_1;MAC /p:Configuration=Release

一个更简单的解决方案是创建一个名为 Mac 的配置,并且在您的 csproj 中有

  <PropertyGroup Condition="'$(Configuration)'=='Mac'">
<DefineConstants>TRACE;NETCOREAPP1_1;MAC</DefineConstants>
</PropertyGroup>

然后从命令行你只需要做

dotnet msbuild /p:Configuration=Mac

关于c# - 如何在 .Net Core 中使用自定义预处理器指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43743808/

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