【问题标题】:variable conditional compilation tag to update target framework用于更新目标框架的变量条件编译标签
【发布时间】:2023-03-03 01:11:02
【问题描述】:

有没有办法创建标签变量

示例。 #if 目标框架
其中 target_framework = NET_471;

所以如果我想改变目标框架我可以改变

target_framework = NET_461;

【问题讨论】:

  • 您可以在“条件编译符号”(属性>构建>常规)中定义 NET_471 的位置执行 #IF NET_471,仅适用于 .NET 4.7.1...
  • 通过这样做,如果有新版本出来,我仍然需要将代码更新为 NET481。我希望有一种方法来定义“条件编译变量”,这样我就不必在自己的代码中进行编辑。示例:#define targetframework1 = NET471 这样我只需要更改此定义:例如#define targetframework1 = NET481
  • 不,您可以 "#define" 编译符号,但它不像 C++,它们存在或不存在,它们不能有值。如果您使用#define 而不是编译符号,您只需要记住#define 的范围是仅文件,而/define 或属性中的编译符号是项目范围的。
  • 但是我不想使用#define。我想要一些不干扰代码的东西,也许是 .csproj 中的配置,比如使用定义常量或 smth,但我不知道该怎么做。
  • 我认为你可能能得到的最接近的东西是ConditionalAttribute,但它只能应用于方法,但会根据定义的编译符号进行编译,但你仍然必须定义它们.

标签: c# visual-studio variables tags conditional-compilation


【解决方案1】:

我不知道您为什么要这样做,但也许这可以通过在您的 csproj 文件中包含类似 <DefineConstants>$(TargetFramework)</DefineConstants> 的内容来完成。这应该可以让您定义 net461、net471 等

在 prop 文件中,您可以将其包含在 PropertyGroup 元素中。

【讨论】:

    猜你喜欢
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    相关资源
    最近更新 更多