部署系统* NuGet与应用程序一起引用

问题描述

我正在维护针对.Net Fw 4.8的多个不同应用程序(Web和Windows服务),该应用程序通过NuGet引用了许多“框架”程序集(缺少更好的名称)。要么是因为应用程序本身需要它们,要么是因为其他一些第三方NuGet组件依赖于它们。

我不知道什么时候应该将这些程序集和我的应用程序一起部署到目标服务器/托管环境,以及如何知道某个程序集应该包含还是已经存在。 .Net Fw运行时的一部分。

.Net Fw Runtime中似乎已经包含了某些内容,这是迄今为止服务器上唯一安装的内容。通过GAC,我发现了一些,但不是全部。

一些示例涉及通过NuGet引用的内容,以及它们在GAC中的存在:

  • System.Buffers(GAC中的不是
  • System.IO(在GAC中)
  • system.memory(GAC中的不是
  • System.Numerics.Vectors(在GAC中)
  • System.Runtime(在GAC中)
  • System.Text.Json(GAC中的不是
  • System.ValueTuple(在GAC中)

当然,服务器上不存在的程序集(GAC或其他方式)必须以某种方式部署。但是其他呢?它提出了很多问题,但我还没有找到任何官方指南或最佳实践:

  1. 即使服务器上已经存在某个版本,我是否仍应始终部署通过NuGet引用的文件?为什么?还是为什么不呢?
  2. 为什么.Net Fw Runtime程序包中的某些部分不包含?并且有一种简单的方法来确定哪些是和哪些不是?一个列表? (除了在GAC中查看)
  3. 在所有情况下部署NuGet版本是否“安全”,并“覆盖” GAC中已经存在的现有版本?

是的,GAC是唯一的选择。它是多个单独的Web应用程序和Windows服务,都位于同一台服务器上,但位于不同的位置。它们都应该使用这些程序集的相同版本,并且我不想将它们“特定于应用程序”部署在bin文件夹等中。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)