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