【发布时间】: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