代码之家  ›  专栏  ›  技术社区  ›  Ken

方法以编程方式将.NET程序集安装到GAC中

  •  10
  • Ken  · 技术社区  · 16 年前

    • 使用 gacutil.exe
    • new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll");

    但是,如果我只是在机器上创建适当的目录并将程序集复制到该目录中,会发生什么?GAC目录的结构如下所示: C:\Windows\assembly\GAC_MSIL\Foo\<version#>__<public token>\Foo.dll

    除了创建文件夹结构并将部件放入其中之外,上述两种方法还有什么特殊作用吗?

    2 回复  |  直到 15 年前
        1
  •  11
  •   Josef Pfleger    16 年前

    强烈地

    快速浏览 gacutil.exe 具有 Process Monitor 揭示了它不仅仅是复制文件:

    • WINDOWS\assembly\GACLock.dat
    • 通知(例如:。 HKLM\SOFTWARE\Microsoft\Fusion\GACChangeNotification\...
    • 索引(例如。 HKLM\SOFTWARE\Microsoft\Fusion\NativeImagesIndex...

    包装纸 System.EnterpriseServices this old blog post 应该很好用。

        2
  •  5
  •   Jason Irwin    16 年前

    我们最近不得不在企业环境中对10台服务器执行此操作。我们使用Wix构建了一个非常简单的MSI(认真地说,需要5分钟的工作),并通过组策略发布到所有服务器(和开发设备箱)。

    推荐文章