【发布时间】:2009-06-09 08:36:37
【问题描述】:
我只是想知道 - 如果我需要将程序集部署到 GAC 中,“官方”的做法是什么?
目前我们要么手动拖放到 c:\windows\assembly 文件夹中,要么使用 gacutil.exe。第一种方法显然不是好方法(毕竟是手动过程),而且 gacutil 是 SDK 的一部分,默认情况下在生产服务器上不可用。
是否有任何 Microsoft 部署指南?
【问题讨论】:
标签: .net deployment gac
我只是想知道 - 如果我需要将程序集部署到 GAC 中,“官方”的做法是什么?
目前我们要么手动拖放到 c:\windows\assembly 文件夹中,要么使用 gacutil.exe。第一种方法显然不是好方法(毕竟是手动过程),而且 gacutil 是 SDK 的一部分,默认情况下在生产服务器上不可用。
是否有任何 Microsoft 部署指南?
【问题讨论】:
标签: .net deployment gac
到目前为止,最简单的方法是使用安装项目。在那里,您只需将项目输出中的程序集添加到一个特殊的 GAC 文件夹中,安装程序就会为您将它们添加到 GAC 中。
【讨论】:
如果您不使用现有的安装程序技术,“官方”方式是通过 IAssemblyCache::InstallAssembly 原生 API。但是可以在 System.EnterpriseServices.Internal 命名空间中找到托管替代方案。尽管名称如此,它实际上是标准程序集中的公共类。
【讨论】:
试试这个:
托管 GAC API 包装器示例 http://blogs.msdn.com/junfeng/articles/229649.aspx
【讨论】:
另一种选择是使用 InnoSetup 之类的工具。
【讨论】:
根据Install Shield的网站:
InstallShield 2011:微软的 首选的安装解决方案 Visual Studio 2010 应用程序
【讨论】:
我用来构建可自动化安装程序的工具是Wix。对于试用版、完整版以及我们必须管理的许多不同产品,我们有不同的安装程序。 Wix 能够让我们轻松管理所有这些。 Wix 的工作方式是您在 Xml 文件中描述所有内容。好处之一是您可以将 XML 置于源代码控制之下。
这里有一些关于如何使用 Wix 将 dll 部署到 GAC 和本地的博客文章:
【讨论】: