c# - 选择 .NET Framework 目标
问题描述
我有一个应用程序,我会在其中同时使用 .net std 2.0 和 .net4.6.1。我已经在我的 .csproj 文件中声明它似乎有效。
<PropertyGroup>
<TargetFrameworks> net461;netstandard2.0 </TargetFrameworks>
</PropertyGroup>
我使用了预处理器指令来让代码按照我想要的方式运行。
#if NET461
//.net 4.6.1 code
#else
//.net std 2.0 code
#endif
当我运行我的应用程序时,我总是进入 .net std 2.0 案例。如何指定代码中的特定部分应针对给定框架?
我已按照以下说明操作: https ://docs.microsoft.com/en-us/dotnet/standard/frameworks
解决方案
以下是我们的一个项目如何配置为使用各种版本的 .Net 框架:
<startup useLegacyV2RuntimeActivationPolicy="false">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
编辑:
只需打开您的 XML 正文,添加一个<configuration>
标签,然后将启动要求放入其中。
这是一个完整的(和基本的)app.config文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="false">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
useLegacyV2RuntimeActivationPolicy
在这个问题中解释:
推荐阅读
- javascript - 为什么我添加新功能时以前的功能不起作用?我怎样才能解决这个问题?
- sql-server - 最高值和最低值查询报告的实体比较
- swift - 如何过滤相等的字符串并只获取每个字符串
- php - 用户登录后从数据库中显示合适的网页信息
- python-3.x - 'ValueError: int() base must be >= 2 and <= 36, or 0' 为什么?
- android - 加载数据时如何使文本视图模糊
- flutter - 在 Flutter 应用程序中为每个屏幕设置不同的方向会导致大量延迟
- python - 如何四舍五入到特定的预定义数字?
- spi - 将 ESP32(Lolin32 Lite 开发板)连接到 7 针 SPI TFT 显示器 ST7789 驱动程序
- html - 如何在点击时更改 MaterialTable 单元格内容?