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

有帮助吗?

解决方案

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

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

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

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

其他提示

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

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

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

使用

gacutil /il YourPathTo_A_TextFile.txt

如果您的 dll 位于多个不同的文件夹中,请进行切换。否则就跟着 for ... in 欧元提到的循环。

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

以下是 YourPathTo_A_TextFile.txt 的示例:

C: ... Microsoft.practices.enterPriselibrary.common.dll C: ... Microsoft.Practices.enterPriselibrary.configuration.design.hostadapter.dll.dll c: ...microsoft.practices.practices.enterpriselpriselibrary.configurary.configurary.configuration.design.design。design。design。 HostAdapterV5.dll C:...Microsoft.Practices.EnterpriseLibrary.Configuration.DesignTime.dll C:...Microsoft.Practices.EnterpriseLibrary.Configuration.EnvironmentalOverrides.dll C:...Microsoft.Practices.EnterpriseLibrary.Data .dll

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top