【发布时间】:2021-11-09 13:57:11
【问题描述】:
我有一个场景,应该允许在 .NET 5 或更低版本的项目上引用 nuget 包。但不适用于 .NET 6 及更高版本。
原因是,my library 在 .NET 5 之前有效,但在 .NET 6 中中断。虽然我已经记录了它,但我想防止用户安装错误的版本。我们有办法做到这一点吗?
更清晰的场景:
- 我的库有一个版本
v1.5.0,它具有多个目标net5.0、netcoreapp3.1和netcoreapp3.0。我了解此版本可用于即将推出的 .NET 版本。 - 当 .NET 6 出现时,
v1.5.0崩溃了。它在 .NET 6 中不起作用 - 现在我修复了这些问题并为 .NET 6 发布了
v1.7.0。这次它只针对net6.0(不是针对较低版本的多目标。由于维护原因。)。 - 因此,.NET 5 用户将继续使用
v1.5.0,而 .NET 6 用户应该使用v1.7.0。我已经记录了每个 TargetFrameworks 的首选版本。 - 现在,任何与 .NET 5 及以下版本上的
v1.5.0相关的问题都将作为v1.6.x发布。当我发布这些版本时,我想防止 .NET 6 的用户意外安装它。 - 即使用户安装了错误的版本,并且在构建项目时,它也会抛出错误,提示他们应该将版本更新为
v1.7.0(在构建时预防,而不是运行时)
【问题讨论】:
-
如果你的包依赖
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation你可以指定一个上限
标签: .net-core nuget nuget-package .net-5 .net-6.0