2008-08-29 12 views
19

Tengo un directorio completo de dll Necesito registrarme en el GAC. Me gustaría evitar registrar cada archivo explícitamente, pero parece que gacutil no tiene una opción de "directorio de registro". ¿Alguien tiene una solución rápida/simple?Registrar múltiples ensambles en el GAC en Vista

Respuesta

34

GACUTIL no registra DLL, no en el sentido "COM". A diferencia de COM, GACUTIL copia el archivo en un directorio opaco en% SYSTEMROOT% \ assembly y es allí desde donde se ejecutan. No tendría sentido pedirle a GACUTIL "registrar una carpeta" (no se puede hacer eso con RegSvr32 tampoco).

Puede utilizar un lote para comando como:

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

Si se coloca de que en un archivo por lotes, debe reemplazar con un% %% a

+0

Funciona muy bien! Para desinstalar, puede usar esto: FOR% a IN (C: \ MyFolderWithAssemblies \ *. Dll) DO GACUTIL/uf% ~ na –

11

Aquí está el script que pondría en un archivo por lotes para registrar todos los archivos en el directorio actual con Gacutil. No necesita colocarlo en un archivo por lotes (solo puede copiarlo/pegarlo en un símbolo del sistema) para hacerlo.

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

Editar: Bah, lo siento, llegué tarde. No vi la publicación anterior cuando publiqué la mía.

2

Uso

gacutil/IL YourPathTo_A_TextFile.txt

interruptor, si usted tiene dlls en varias carpetas diferentes. De lo contrario, vaya con el ciclo for ... in mencionado por Euro.

El archivo de texto debe contener una lista de rutas de ensamblaje (una ruta por línea) que debe instalarse. Las rutas también pueden ser carpetas diferentes en todo el sistema. ¡Ejecuta la línea de comando como administrador!

Aquí un ejemplo de la 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

+0

Enterprise Library = Ultimate DLL hell –

Cuestiones relacionadas