Pergunta

Eu tenho um diretório inteiro de DLLs que preciso registrar no GAC.Eu gostaria de evitar registrar cada arquivo explicitamente - mas parece que o gacutil não tem a opção "registrar diretório".Alguém tem uma solução rápida/simples?

Foi útil?

Solução

GACUTIL não registra DLLs – não no sentido “COM”.Ao contrário do COM, o GACUTIL copia o arquivo para um diretório opaco em %SYSTEMROOT%\assembly e é de lá que eles são executados.Não faria sentido pedir ao GACUTIL "registrar uma pasta" (não que você também possa fazer isso com o RegSvr32).

Você pode usar um comando FOR em lote, como:

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

Se você colocar isso em um arquivo em lote, deverá substituir %a por %%a

Outras dicas

Aqui está o script que você colocaria em um arquivo em lote para registrar todos os arquivos no diretório atual com Gacutil.Você não precisa colocá-lo em um arquivo em lote (basta copiar/colar em um prompt de comando) para fazer isso.

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

Editar:Bah, desculpe, eu estava atrasado.Não vi o post anterior quando postei o meu.

Usar

gacutil /il YourPathTo_A_TextFile.txt

switch, se você tiver DLLs em várias pastas diferentes.Caso contrário, vá com o for ... in loop mencionado pelo Euro.

O arquivo de texto deve conter uma lista de caminhos de montagem (um caminho por linha) que devem ser instalados.Os caminhos também podem ser pastas diferentes em todo o sistema.Execute a linha de comando como administrador!

Aqui está um exemplo de YourPathTo_A_TextFile.txt:

C: ... microsoft.practices.enterpriselibrary.common.dll c: ... microsoft.practices.enterpriselibrary.configuration.design.hostadapter.dll c: ... microsoft.practices.enterpractice Hostadapterv5.dll c: ... microsoft.practices.enterpriselibrary.configuration.designtime.dll c: ... microsoft.practices.enterpriselibrary.configuration.EnvirprisElOverrides.dll c: ... .dll

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top