【问题标题】:How to make my DLL global without gacutil?如何在没有 gacutil 的情况下使我的 DLL 全局化?
【发布时间】:2013-11-09 16:27:25
【问题描述】:

我希望能够使用我的全局 DLL,这样即使 DLL 不在 EXE 所在的同一目录中,我的 exe 也能正常工作。所以我读了很多关于 Global Assembly Cache 的内容,它说我必须使用 gacutil.exe 来注册 DLL。

有几个问题:我不知道 gacutil.exe 在哪里,似乎它总是位于每个系统的其他地方。所以我不得不对 gacutil.exe 使用递归搜索,它会减慢我的 DLL 的安装速度。或者也许检查一些注册表项。

在 Windows XP 上,我安装了 .NET 4 Framework,但在任何地方都找不到 gacutil.exe。

我只是尝试复制 gacutil.exe,但该 exe 无法自行运行。

有没有一种简单的方法可以在 GAC 中注册我的 DLL? 我不想乱用 gacutil。而且我不想告诉我的客户将 DLL 拖放到 GAC 文件夹中。我需要静默安装我的 DLL。或者在旧 COM 时代像 regsvr32 这样的系统范围的 WORKING 工具......

【问题讨论】:

  • 您只需要了解“静默安装”是一种可行或可接受的方式来部署具有系统范围影响的代码的想法。没有人喜欢这样弄乱他们的机器。如果您搞砸了,那么机器所有者将花费大量时间来找出原因和解决方法。如果“静默”真的意味着“它应该可以工作”,那么你也必须创建一个安装程序。如果这一切听起来没有吸引力,请使用本地部署,无论如何它是更好的 DLL Hell 解决方案。

标签: .net vb.net dll gac gacutil


【解决方案1】:

其中一种解决方案是使用下面描述的 GacInstall 方法:MSDN

欲了解更多信息,请参阅以下answer

【讨论】:

    【解决方案2】:

    您可以轻松地将 gacutil 实用程序与您的程序集一起分发,只需将其复制即可。因此,在安装过程中,您从安装文件夹运行 gacutil。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2012-08-11
    相关资源
    最近更新 更多