所以基本上我们有一个强名称(强签名)程序集 x.dll,它由我们的组件之一 App.exe 使用。程序集的签名密钥在我们的存储库中,并且程序集是通过书面形式签署的
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFileAttribute(@"..\..\xxx.snk")]
[assembly: AssemblyKeyName("")]
该程序集应该由一些安装通用软件包的安装程序放入 GAC,我们将其命名为 common.msi。但是我们的组件本身是由 App.msi 安装的。一起部署时,一切正常。但是当对 App.msi 进行更改时,那些与 x.dll 完全无关的,并且重新部署 App.msi,App.exe 无法找到 x.dll。请注意,不会对 x.dll 进行任何更改。但是,当也部署 common.msi 时,一切正常。所以我猜肯定存在构建版本或其他东西的问题,或者我一无所知的清单。有什么明显的我做错了吗?是不是可以单独部署组件而不触摸它,除非它被更改并且每次使用它的组件发生更改时都不会重新部署它?谢谢。
编辑:将程序集放入 GAC 是一项要求(我对此无能为力)