Cadastre conjuntos gerenciados com COM sem usar o GAC
-
18-09-2019 - |
Pergunta
Eu estou querendo saber se é possível registrar montagens com COM sem ter que registrá-lo com o GAC. Precisamos implantar algumas bibliotecas .net que são expostas ao ASP clássico usando um CCW. Mas implementações são um pesadelo.
Solução
Pois é, regasm.exe
uso com chave /codebase
para isso. Quando você usa regasm.exe
sem /codebase
apenas escreve o nome do arquivo do assmebly para o registro e assim o tempo de execução .NET não pode encontrá-lo a menos que o assembly está no GAC. Com /codebase
ele vai escrever o caminho completo e .NET será feliz para encontrar o conjunto quando o consumidor chama CoCreateInstance()
.
Outras dicas
Sim, você pode usar Regasm em uma montagem sem que seja no GAC. Por exemplo, tenho mistos locais ASP e ASP.NET com .NET conjuntos na pasta de posição. Alguns estão expostos a COM e são registrados in situ a partir da pasta bin.
É claro que essas assembléias são exclusivas para a aplicação e não são compartilhados por outros aplicativos. Não quer dizer que também não é possível, você provavelmente iria escolher um local neutro para copiar essas DLLs para.