У меня есть целая директория dll Мне нужно зарегистрироваться в GAC. Я хотел бы избежать регистрации каждого файла явно, но, похоже, что gacutil не имеет опции "register directory". У любого есть быстрое/простое решение?
Регистрация нескольких сборок в GAC в Vista
Ответ 1
GACUTIL не регистрирует DLL - не в смысле "COM". В отличие от COM, GACUTIL копирует файл в непрозрачный каталог в разделе% SYSTEMROOT%\assembly и тот, из которого они запускаются. Было бы бессмысленно просить GACUTIL "зарегистрировать папку" (не то, что вы можете сделать это с RegSvr32 тоже).
Вы можете использовать пакетную команду FOR, например:
FOR %a IN (C:\MyFolderWithAssemblies\*.dll) DO GACUTIL /i %a
Если вы поместите это в пакетный файл, вы должны заменить% a на %% a
Ответ 2
Вот script, который вы поместили бы в пакетный файл для регистрации всех файлов в текущем каталоге с помощью Gacutil. Вам не нужно помещать его в пакетный файл (вы можете просто скопировать/вставить его в командную строку), чтобы сделать это.
FOR %1 IN (*) DO Gacutil /i %1
Редактировать: Ба, прости, я опоздал. Я не видел предыдущую запись, когда я разместил свою.
Ответ 3
Используйте
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 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