我在 GAC 中注册了一个 DLL,其中有一个错误(v4.2.0)。
因此,我修复了该错误,仅更新了文件版本 (v4.2.1)(保留程序集版本 v4.2.0)并构建了一个新的 MSI 包。
问题是 DLL 没有安装在 GAC 中。我通过右键单击其中的 DLLC:\Windows\Microsoft.NET\assembly\GAC_MSIL\MyDLL\v4.0_4.2.0.0__2269313d92725976
并检查了文件版本来验证这一点,它仍然v4.2.0
是 .下也没有创建其他文件夹C:\Windows\Microsoft.NET\assembly\GAC_MSIL\MyDLL
。
但!如果我卸载第一个版本,然后安装新的 DLL,它就可以在 GAC 中安装。
我是以错误的方式接近这个吗?我们的应用程序设置为使用特定版本,因此仅创建程序集版本 v4.3.0 并将其安装在 GAC 中是行不通的。
更新
我找到了有关发布者政策的文章 ( http://support.microsoft.com/kb/891030 ),并正在尝试这样做。我已经生成了策略程序集。但是当我尝试将它添加到安装项目时,Visual Studio 崩溃了 =(
我还尝试将其作为内容文件添加到主项目(然后将内容文件添加到 GAC)。但随后它抱怨没有签署该程序集。
所以我还是卡住了。