Jef*_*eff 6 .net-core .net-5 .net-6.0
我之前认为 net6.0 运行时是向后兼容的,因为 net5.0 应用程序将按原样运行,但这不是我在测试中看到的。我的开发系统使用的是VS2019,所以不支持net6.0 SDK。我尝试手动将 TargetFramework 标记转换为 TargetFrameworks 并添加 net5.0;net6.0,但它无法构建。我想要某种表示 5 或更高版本的 net5.0+ 标签,但我也找不到。
但是,为什么当部署到仅具有 net6.0 运行时的系统时,TargetFramework 设置为 net5.0 不起作用?假设我的应用程序是在 net6.0 存在之前构建的。我不想在 net6.0 发布时必须发布新的软件包。这是否需要客户无限期地安装 net5.0 以继续支持我的应用程序?
我觉得我错过了一些简单的东西,但经过几个小时的阅读后,我并没有更接近弄清楚它。
我想我终于明白了这一点。将RollForward添加到 .csproj 似乎是必要的成分:
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RollForward>Major</RollForward>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我之前曾尝试将 RollForward 添加到 app.runtimeconfig.json 文件中,但这似乎没有任何效果。我想知道在我的情况下,我正在做一个依赖于发布的“单个文件”框架的exe,它是否可能根本不查看那些运行时配置文件。不确定,但至少我现在有了解决方案。我在测试机器上只安装了 6.0.2 运行时,它允许 net5.0 构建的二进制文件运行。
| 归档时间: |
|
| 查看次数: |
2728 次 |
| 最近记录: |