Net Core 将项目迁移到 3.1:我们应该先升级 Common/Shared 项目吗?
Net Core Migrate Projects to 3.1: Should we Upgrade Common/Shared Project First?
我们即将升级我们的 .Net Core 解决方案。我们有多个微服务,例如:
- 客户
- 结算
- 帐户
- 库存
- 营销
他们都依赖于 Common Utilities Project。它包含很棒的工具,例如:
- 文件解析器,
- 扩展方法,
- 普通functions/methods
- 等等
全公司都在使用。
当我们要从 2.2 升级到 3.1 时,哪个应该是第一个项目?
我想知道如果我们所有的 2.2 微服务都指向 3.1 实用程序项目怎么办?!
a) 这些项目向前兼容吗?
b) 如果新的 (3.1) Common 项目没有正确升级怎么办,这就是为什么所有其他解决方案都会遇到错误的原因?
c) 我的提议是先将所有 5 个微服务升级到 3.1,最后将通用解决方案升级到 3.1。这是最优解吗?
我正在尝试通读 Upgrade guide
如果公共项目发布到内部 nuget 提要。
您可以通过在 .csproj
中使用目标框架来创建针对 .net core 3.1 和 2.2 的通用项目的新版本
<TargetFrameworks>netcoreapp2.2;netcoreapp3.1</TargetFrameworks>
然后您可以更新每个服务个体。
如果所有内容都在同一个解决方案中并且您使用的是项目引用,那么您并不是真正在做微服务,我建议将通用代码放在不同的解决方案中并将它们发布到内部 nuget 提要。
当我们升级时,我们首先升级我们的公共包。然后我们选择了一个简单的服务升级到.net core 3.1,通过nuget升级它的所有依赖,包括我们常用的包。
我们在第一次升级时遇到了一些自定义 swashbuckle 代码的问题,但在我们完成一项服务后,其他的就顺利进行了。
关键是将 nuget 用于所有依赖项,以及您自己在共享库中编写的依赖项。
我们首先更新了公共包,因为如果不使用新版本,它不会影响任何服务。你只在更新微服务中公共包的版本时影响服务。
您可以通过为您的 nuget 包设置正确的分支/预发布标签来设置 Common,并为您的包制定清晰的版本策略。
如果通用包只是工具,我强烈建议您先将它们转换为 .Net Standard,这样它们就可以被所有 .Net Core 版本以及您可能拥有的任何旧框架使用。
我们即将升级我们的 .Net Core 解决方案。我们有多个微服务,例如:
- 客户
- 结算
- 帐户
- 库存
- 营销
他们都依赖于 Common Utilities Project。它包含很棒的工具,例如:
- 文件解析器,
- 扩展方法,
- 普通functions/methods
- 等等
全公司都在使用。
当我们要从 2.2 升级到 3.1 时,哪个应该是第一个项目?
我想知道如果我们所有的 2.2 微服务都指向 3.1 实用程序项目怎么办?!
a) 这些项目向前兼容吗?
b) 如果新的 (3.1) Common 项目没有正确升级怎么办,这就是为什么所有其他解决方案都会遇到错误的原因?
c) 我的提议是先将所有 5 个微服务升级到 3.1,最后将通用解决方案升级到 3.1。这是最优解吗?
我正在尝试通读 Upgrade guide
如果公共项目发布到内部 nuget 提要。 您可以通过在 .csproj
中使用目标框架来创建针对 .net core 3.1 和 2.2 的通用项目的新版本<TargetFrameworks>netcoreapp2.2;netcoreapp3.1</TargetFrameworks>
然后您可以更新每个服务个体。
如果所有内容都在同一个解决方案中并且您使用的是项目引用,那么您并不是真正在做微服务,我建议将通用代码放在不同的解决方案中并将它们发布到内部 nuget 提要。
当我们升级时,我们首先升级我们的公共包。然后我们选择了一个简单的服务升级到.net core 3.1,通过nuget升级它的所有依赖,包括我们常用的包。
我们在第一次升级时遇到了一些自定义 swashbuckle 代码的问题,但在我们完成一项服务后,其他的就顺利进行了。
关键是将 nuget 用于所有依赖项,以及您自己在共享库中编写的依赖项。
我们首先更新了公共包,因为如果不使用新版本,它不会影响任何服务。你只在更新微服务中公共包的版本时影响服务。
您可以通过为您的 nuget 包设置正确的分支/预发布标签来设置 Common,并为您的包制定清晰的版本策略。
如果通用包只是工具,我强烈建议您先将它们转换为 .Net Standard,这样它们就可以被所有 .Net Core 版本以及您可能拥有的任何旧框架使用。