Registre varias asambleas en el GAC en Vista
Pregunta
Tengo un directorio completo de dll que necesito registrar en el GAC.Me gustaría evitar registrar cada archivo explícitamente, pero parece que gacutil no tiene la opción "registrar directorio".¿Alguien tiene una solución rápida/simple?
Solución
GACUTIL no registra archivos DLL, no en el sentido "COM".A diferencia de COM, GACUTIL copia el archivo a un directorio opaco en %SYSTEMROOT%\assembly y desde allí se ejecuta.No tendría sentido pedirle a GACUTIL "registrar una carpeta" (tampoco es que puedas hacerlo con RegSvr32).
Puede utilizar un comando FOR por lotes como:
FOR %a IN (C:\MyFolderWithAssemblies\*.dll) DO GACUTIL /i %a
Si coloca eso en un archivo por lotes, debe reemplazar %a con %%a
Otros consejos
Aquí está el script que colocaría en un archivo por lotes para registrar todos los archivos en el directorio actual con Gacutil.No es necesario colocarlo en un archivo por lotes (puede simplemente copiarlo y pegarlo en el símbolo del sistema) para hacerlo.
FOR %1 IN (*) DO Gacutil /i %1
Editar:Bah, perdón por llegar tarde.No vi la publicación anterior cuando publiqué la mía.
Usar
gacutil /il YourPathTo_A_TextFile.txt
cambie, si tiene archivos DLL en varias carpetas diferentes.De lo contrario ve con el for ... in
bucle mencionado por el euro.
El archivo de texto debe contener una lista de rutas de ensamblaje (una ruta por línea) que deben instalarse.Las rutas también pueden ser diferentes carpetas en todo el sistema.¡Ejecute la línea de comando como administrador!
Aquí un ejemplo de 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.environmentmentaloverrides.dll c: ... microsoft.practices.entpriselibrary.data .dll