Registrare più assiemi nel GAC in Vista
Domanda
Ho un'intera directory di DLL di cui ho bisogno per registrarmi al GAC.Vorrei evitare di registrare esplicitamente ciascun file, ma sembra che gacutil non abbia l'opzione "directory di registrazione".Qualcuno ha una soluzione veloce/semplice?
Soluzione
GACUTIL non registra DLL, non nel senso "COM".A differenza di COM, GACUTIL copia il file in una directory opaca in %SYSTEMROOT%\assembly ed è da lì che vengono eseguiti.Non avrebbe senso chiedere a GACUTIL "registra una cartella" (non che tu possa farlo neanche con RegSvr32).
È possibile utilizzare un comando batch FOR come:
FOR %a IN (C:\MyFolderWithAssemblies\*.dll) DO GACUTIL /i %a
Se lo inserisci in un file batch, devi sostituire %a con %%a
Altri suggerimenti
Ecco lo script che inseriresti in un file batch per registrare tutti i file nella directory corrente con Gacutil.Non è necessario inserirlo in un file batch (puoi semplicemente copiarlo/incollarlo su un prompt dei comandi) per farlo.
FOR %1 IN (*) DO Gacutil /i %1
Modificare:Bah, scusa, ho fatto tardi.Non avevo visto il post precedente quando ho postato il mio.
Utilizzo
gacutil /il YourPathTo_A_TextFile.txt
cambia, se hai DLL in più cartelle diverse.Altrimenti vai con il for ... in
ciclo menzionato da Euro.
Il file di testo dovrebbe contenere un elenco di percorsi di assembly (un percorso per riga) da installare.I percorsi possono anche essere cartelle diverse in tutto il sistema.Esegui la riga di comando come amministratore!
Ecco un esempio di 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