关于.net:在Vista中向GAC注册多个程序集

关于.net:在Vista中向GAC注册多个程序集

Register Multiple Assemblies to the GAC in Vista

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


GACUTIL不会注册DLL,这并不是" COM"的意思。与在COM中不同,GACUTIL将文件复制到%SYSTEMROOT%\ assembly下的不透明目录中,并且从该目录开始运行。要求GACUTIL"注册文件夹"是没有意义的(不是您也可以使用RegSvr32来做到这一点)。

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

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

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


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

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

编辑:B,抱歉我迟到了。我发布我的文章时没有看到上一篇文章。


gacutil /il YourPathTo_A_TextFile.txt

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

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

这是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


推荐阅读