【发布时间】:2008-12-11 14:30:50
【问题描述】:
“程序集 [AssemblyName] 必须有一个共享名称才能全局安装”
当我尝试将我的应用程序的一些组件 DLL 部署到全局程序集缓存时,我收到此错误消息。
什么是共享名,我如何确保我的 DLL 有一个?
【问题讨论】:
标签: .net dll installation windows-installer
“程序集 [AssemblyName] 必须有一个共享名称才能全局安装”
当我尝试将我的应用程序的一些组件 DLL 部署到全局程序集缓存时,我收到此错误消息。
什么是共享名,我如何确保我的 DLL 有一个?
【问题讨论】:
标签: .net dll installation windows-installer
“共享名称”必须是“strong name”的同义词,这是我一直阅读/听到的名称。该链接显示了如何使用强名称对程序集进行签名,以便将其添加到 GAC。
【讨论】:
你确定这不是“强名”吗?在将它们安装到 gac 之前,您必须对程序集进行签名(请参阅 vs.net 中的项目属性)。
尽管一般来说,程序集不应安装在 GAC 中。 MS 建议仅安装许多应用程序(例如控制库)使用的组件 dll 以安装在 GAC 中。一般来说,应该将使用过的程序集保留在应用程序本身的本地,以便可以进行 xcopy 部署(因为应用程序正常运行不需要安装 GAC)
【讨论】:
我想说,如果我有一个应用程序,如果这个应用程序使用另一个应用程序,比如 devexpress 组件,并且这个组件总是有一个组件,我该怎么办。 但最后我用 GAC 实用程序解决了这个问题,我还看到,如果我们将该 dll 复制到 GAC 的共享文件夹,它也总是同意这个问题
对不起,因为当时我很长一段时间都没有。
谢谢大家
【讨论】:
没错,您需要使用strong name 对您的程序集进行签名。
【讨论】: