首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义目标框架符号

未定义目标框架符号
EN

Stack Overflow用户
提问于 2019-02-11 11:20:51
回答 1查看 1.3K关注 0票数 4

我试图使用if编译器指令有条件地包含一些.Net框架早期版本所需的代码,而不是更晚的版本。

我使用了来自MSDN、#if编译器指令引用和目标框架引用的以下引用。

我正在编写一个.Net 4.5.1应用程序,但似乎没有定义NET451符号,其他任何代码也没有定义。

我已经修改了Target Frameworks文章中的示例,以包含所有框架符号,这样我就可以看到定义了哪个框架符号。

代码语言:javascript
复制
#if NET20
        Console.WriteLine("Target framework: NET20");
#elif NET35
        Console.WriteLine("Target framework: NET35");
#elif NET40
        Console.WriteLine("Target framework: NET40");
#elif NET45
        Console.WriteLine("Target framework: NET45");
#elif NET451
        Console.WriteLine("Target framework: NET451");
#elif NET452
        Console.WriteLine("Target framework: NET452");
#elif NET46
        Console.WriteLine("Target framework: NET46");
#elif NET461
        Console.WriteLine("Target framework: NET461");
#elif NET462
        Console.WriteLine("Target framework: NET462");
#elif NET47
        Console.WriteLine("Target framework: NET47");
#elif NET471
        Console.WriteLine("Target framework: NET471");
#elif NET472
        Console.WriteLine("Target framework: NET472");
#elif NETSTANDARD1_0
        Console.WriteLine("Target framework: NETSTANDARD1_0");
#elif NETSTANDARD1_1
        Console.WriteLine("Target framework: NETSTANDARD1_1");
#elif NETSTANDARD1_2
        Console.WriteLine("Target framework: NETSTANDARD1_2");
#elif NETSTANDARD1_3
        Console.WriteLine("Target framework: NETSTANDARD1_3");
#elif NETSTANDARD1_4
        Console.WriteLine("Target framework: NETSTANDARD1_4");
#elif NETSTANDARD1_5
        Console.WriteLine("Target framework: NETSTANDARD1_5");
#elif NETSTANDARD1_6
        Console.WriteLine("Target framework: NETSTANDARD1_6");
#elif NETSTANDARD2_0
        Console.WriteLine("Target framework: NETSTANDARD2_0");
#elif NETCOREAPP1_0
        Console.WriteLine("Target framework: NETCOREAPP1_0");
#elif NETCOREAPP1_1
        Console.WriteLine("Target framework: NETCOREAPP1_1");
#elif NETCOREAPP2_0
        Console.WriteLine("Target framework: NETCOREAPP2_0");
#elif NETCOREAPP2_1
        Console.WriteLine("Target framework: NETCOREAPP2_1");
#elif NETCOREAPP2_2
        Console.WriteLine("Target framework: NETCOREAPP2_2");
#else
        Console.WriteLine("Could not tell which framework we're using.");
#endif

结果输出是“无法判断我们使用的是哪个框架”。

我做错了什么吗?文件不正确吗?还是我找到窃听器了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-11 11:43:23

这些指令仅由.NET核心的构建系统隐式生成。关键词从文件中

.NET核心目标框架的预处理符号的完整列表是:

因此,当您创建针对.NET框架的新应用程序或类库时,将丢失这些指令。相反,创建一个核心或.NET标准库或应用程序。

如果您还没有准备好迁移到Core,请参阅在编译时检测目标框架版本中的解决方案--例如,您可以自己定义它们。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54629452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档