21

我有一个完整的 dll 目录,我需要向 GAC 注册。我想避免显式注册每个文件 - 但 gacutil 似乎没有“注册目录”选项。有人有快速/简单的解决方案吗?

4

3 回答 3

37

GACUTIL 不注册 DLL——不是“COM”意义上的。与 COM 不同,GACUTIL 将文件复制到 %SYSTEMROOT%\assembly 下的不透明目录中,这就是它们运行的​​地方。询问 GACUTIL“注册文件夹”是没有意义的(不是说您也可以使用 RegSvr32 做到这一点)。

您可以使用批处理 FOR 命令,例如:

FOR %a IN (C:\MyFolderWithAssemblies\*.dll) DO GACUTIL /i %a

如果将其放在批处理文件中,则必须将 %a 替换为 %%a

于 2008-08-29T19:05:44.880 回答
11

这是您将放入批处理文件中的脚本,以使用 Gacutil 注册当前目录中的所有文件。您无需将其放入批处理文件(您只需将其复制/粘贴到命令提示符即可)即可。

FOR %1 IN (*) DO Gacutil /i %1

编辑:呸,对不起,我迟到了。发帖的时候没看到之前的帖子。

于 2008-08-29T19:07:26.967 回答
2

采用

gacutil /il YourPathTo_A_TextFile.txt

开关,如果您在多个不同的文件夹中有 dll。否则,请使用for ... inEuro 提到的循环。

文本文件应包含应安装的程序集路径列表(每行一个路径)。路径也可以是整个系统中的不同文件夹。以管理员身份运行命令行!

这是 YourPathTo_A_TextFile.txt 的示例:

C:\...Microsoft.Practices.EnterpriseLibrary.Common.dll C:\...Microsoft.Practices.EnterpriseLibrary.Configuration.Design.HostAdapter.dll C:\...Microsoft.Practices.EnterpriseLibrary.Configuration.Design。 HostAdapterV5.dll C:\...Microsoft.Practices.EnterpriseLibrary.Configuration.DesignTime.dll C:\...Microsoft.Practices.EnterpriseLibrary.Configuration.EnvironmentalOverrides.dll C:\...Microsoft.Practices.EnterpriseLibrary.Data .dll

于 2015-05-03T16:32:44.257 回答