是否可以通过Nuget包向GAC添加/更新程序集?

Nic*_*erb 13 gac nuget nuget-package

Nuget,毫无疑问是一个非常有效的包装和分配系统.但是,在某些情况下,管理程序集文件变得很麻烦.对于Web应用程序尤其明显,其中站点中的许多(30+)个子应用程序被设置为继承引用.在我的情况下,单点继承是可取的,因为可以轻松地为所有子项目更新库.我将这些程序集可靠地存储在根目录中已成为一个问题.为了帮助管理这个,我想将GAC用于这些特定的库.

有没有办法通过nuget包脚本将这些库安装/更新到GAC?我总是可以采用传统方式,但如果可能的话,我想利用Nuget.该程序集将添加到服务器GAC,但该程序包的目的是允许开发人员轻松地将程序集安装到其本地GAC并在本地/服务器环境之间维护相同的引用.

rus*_*hop 7

您可以使用PowerShell GAC中的PowerShell脚本将程序集安装到GAC,因此您的install.ps1脚本肯定可以执行此操作.

但是有必要提出警告; 这样做可能不会给大多数人他们想要的行为.每个项目都将使用对特定版本的强名称引用.仅仅因为一个项目更新包并不意味着其他项目将更新他们的包,也不会在GAC中使用更新的版本 - 他们将使用他们强烈绑定的版本,除非程序集包含指定的绑定策略新版本替换旧版本,在这种情况下,项目使用的版本将与nuget认为安装的版本不匹配!

因此,很难推断出正确使用哪个版本的组件.通常情况下,您只需查看nuget安装的软件包,立即知道您拥有的软件包.

在我的例子中,我们使用nuget将二进制文件保留在Git之外,但是一些二进制文件涉及WinForms设计器,如果程序集不在GAC中,它会非常非常生气.我们一遍又一遍地遇到无穷无尽的问题,直到我们咬紧牙关并将组件放入GAC.现在它完美无缺.因此,我们通过nuget在GAC中注册我们的私有自定义程序集,因此它将自动下载并注册它们,但我们有一个解决方案并保证所有项目同时升级.