在Visual Studio安装程序项目中部署DLL到GAC时遇到问题

3

"程序集 [AssemblyName] 必须要有一个共享名称才能进行全局安装"

当我尝试将一些组件DLL文件部署到全局程序集缓存时,我会收到这个错误信息。

什么是共享名称,我该如何确保我的DLL文件拥有共享名称?

4个回答

5

“共享名称”必须是“强名称”的同义词,这也是我一直阅读/听到的。该链接展示了如何使用强名称对程序集进行签名,以便将其添加到全局程序集缓存中。


1

你确定不是“强名称”吗?在安装程序集到全局程序集缓存之前,你需要签署它们(在 VS.NET 的项目属性中可以看到)。

一般来说,程序集不应该被安装到全局程序集缓存中。微软建议只将多个应用程序使用的组件 DLL(例如控件库)安装到全局程序集缓存中。一般而言,应该将所使用的程序集保留在应用程序本身,以便进行 XCopy 部署(因为应用程序的正常运行并不需要 GAC 安装)。


它说共享名称,但正如Kevin所说,它们必须是同义词。 - brien

0

没错,你需要使用强名称为你的程序集签名。


0
我想说的是,如果我有一个应用程序,并且这个应用程序使用另一个应用程序,比如devexpress组件,而这个组件总是有一个程序集,我该怎么办。
但最终我通过GAC实用程序解决了这个问题,我还发现,如果我们将该dll复制到共享文件夹中,对于这个问题也总是有效的。
以上抱歉,因为它已经超出了我的时间。
谢谢大家。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接