【问题标题】:Install Dll in the GAC for .Net在 GAC 中为 .Net 安装 Dll
【发布时间】:2010-04-16 04:27:32
【问题描述】:

我是 .Net 开发的初学者。我需要询问.Net winform 部署。 如果我有 1 个 exe 文件、一些类库和第 3 方组件(DevExpress)。 我应该在客户端计算机的 GAC(全局程序集缓存)中安装这些 Dll(类库和第 3 方组件)吗? 谢谢你的解释。

【问题讨论】:

    标签: c# winforms deployment


    【解决方案1】:

    IMO,您应该避免将这些库安装到 GAC 中。通过避免 GAC,您可以显着简化安装过程。事实上,它可以变得如此简单,您只需将这些位从一台计算机复制到另一台计算机即可进行安装(尽管您可能有其他安装限制会阻止此操作)。

    当您引用第三方库时,您可以在 Visual Studio 中单击引用并将Copy Local 设置设置为true。这会将库复制到您的 bin 文件夹中。第三方库通常会安装在 GAC 中的开发人员机器上,但对于部署,您希望系统将库复制到您的 bin 文件夹中。

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      这确实取决于一些事情,但这里有更好的解释和讨论:

      When should I deploy my assemblies into the GAC?

      结论(以及我个人的观点)是你永远不应该这样做。

      【讨论】:

        【解决方案4】:

        GAC 代表Global Assembly Cache 任何.dll 您放置的所有.net assemblies 'exe' 或'dll' 都可用。因此,如果第 3 方组件可以/将用于多个项目,那么 YES 你可以安装在 GAC 我能想到的最好的例子是 Newtonsoft.Json

        但由于这是一个 Windows 窗体应用程序,当您完成项目时,您必须在某处打包/部署或将其交给某人。那时你不能要求他们在GAC 中安装一些dlls,而且按照上面的例子Newtonsoft.Json 你正在使Newtonsoft.Json 可用于其他.Net 项目。

        想想为什么要这样做而不是考虑自己的应用程序?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-30
          • 1970-01-01
          • 2014-07-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多