Bur*_*rdH 6 c# deployment nuget .net-core
我正在开发具有少数不同项目的 asp.net 核心解决方案,每个项目都使用某个版本库的 3rd 方 NuGet 包。这些版本,例如 1.0.0 和 2.0.0,有重大更改。另外,这个库是由另一个项目团队开发的,不受我的影响。所以在未来,将会有与另一个版本不兼容的版本,我的限制是在特定项目中使用一个确切的版本。
以下是该解决方案的最小概述:
在 Visual Studio 的开发过程中,一切都很好,我可以在每个项目中使用我的版本库的各个方法。如果我最终发布我的应用程序,输出文件夹中只有一个v2.0.0 的 CustomLibrary.dll。
我对此有点困惑。这个 dll 是否包含两个版本并且 dotnet 可以在运行时解析它们?如果不是这种情况,应用程序将在运行时失败,因为 v1.0.0 的方法和输出可能与 v2.0.0 完全不同。
(.NET Framework中我能做到这样,但似乎并不在.net中的核心应用)
是否有部署同一强命名库的不同版本的解决方案?我想应该可以部署特定版本的 NuGet 包吗?
如果您能帮助我,我将不胜感激。
.NET Core 架构有一些限制会影响应用程序设计:
记住这一点,您需要重新设计您的应用程序并在运行时动态加载带有 CustomLibrary v1.0.0 的 Project1。Project2 也是如此。您最终应该得到一个新的体系结构,其中 Project1 和 Project2 将发布到不同的文件系统位置并在运行时动态加载。
在这种情况下,您的应用程序需要在其生命周期内同时使用 Project1 和 Project2,如果您的程序集能够与可收集的 AssemblyLoadContext 很好地配合,那么这是可能的。场景是 Project1 和 Project2 都能够使用可收集的 AssemblyLoadContext 进行加载和卸载,并且应用程序将根据需要在它们之间进行切换。
希望这将有助于解决问题。
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |