【问题标题】:Problem deploying DLLs to the GAC in a Visual Studio Setup Project在 Visual Studio 安装项目中将 DLL 部署到 GAC 时出现问题
【发布时间】:2008-12-11 14:30:50
【问题描述】:

“程序集 [AssemblyName] 必须有一个共享名称才能全局安装”

当我尝试将我的应用程序的一些组件 DLL 部署到全局程序集缓存时,我收到此错误消息。

什么是共享名,我如何确保我的 DLL 有一个?

【问题讨论】:

    标签: .net dll installation windows-installer


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你确定这不是“强名”吗?在将它们安装到 gac 之前,您必须对程序集进行签名(请参阅 vs.net 中的项目属性)。

      尽管一般来说,程序集不应安装在 GAC 中。 MS 建议仅安装许多应用程序(例如控制库)使用的组件 dll 以安装在 GAC 中。一般来说,应该将使用过的程序集保留在应用程序本身的本地,以便可以进行 xcopy 部署(因为应用程序正常运行不需要安装 GAC)

      【讨论】:

      • 它说的是共享名,但正如凯文所说,它们必须是同义词。
      【解决方案3】:

      我想说,如果我有一个应用程序,如果这个应用程序使用另一个应用程序,比如 devexpress 组件,并且这个组件总是有一个组件,我该怎么办。 但最后我用 GAC 实用程序解决了这个问题,我还看到,如果我们将该 dll 复制到 GAC 的共享文件夹,它也总是同意这个问题

      对不起,因为当时我很长一段时间都没有。

      谢谢大家

      【讨论】:

        【解决方案4】:

        没错,您需要使用strong name 对您的程序集进行签名。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-13
          • 1970-01-01
          • 1970-01-01
          • 2011-07-24
          相关资源
          最近更新 更多