Como referenciar o caminho para um assembly no GAC dentro de entradas de registro adicionados por um pacote do Windows Installer?

StackOverflow https://stackoverflow.com/questions/106414

Pergunta

Eu tenho um .NET assembly que contém classes a serem registradas como ServicedComponent através EnterpriseServices (COM +) e invocado através COM RPC por um aplicativo de terceiros. Portanto, eu preciso tanto de adicioná-lo ao GAC e adicionar uma entrada de registro sob HKEY_CLASSES_ROOT\CLSID\{clsid}\CodeBase com o caminho para a DLL de montagem dentro da pasta GAC. (Eu não posso confiar em regsvcs para fazê-lo, porque este é um 32-bit assembly --- ele se baseia em componentes de terceiros de 32 bits --- e o aplicativo de terceiros que me referi antes, não pode ver as classes em Wow6432Node)

Então a questão é:

são caminhos para assembléias a serem criados no GAC, ou pelo menos o caminho para o GAC própria pasta, disponível no Windows Installer como propriedades que podem ser usados ??em valores de chaves de registro etc.?

Foi útil?

Solução

Se você tem um componente por arquivo, que você deve de qualquer maneira, o caminho-chave do componente aponta para o local onde o arquivo é instalado (neste caso, o GAC). Você pode usar a tecla componente como um token no campo de valor da entrada na tabela de registro em sua MSI.

Supondo que você tenha uma montagem com uma chave de arquivo na tabela de arquivos de "assmb.dll" e seu componente correspondente, também "assmb.dll". Você pode definir o campo de valor na tabela de registo para registar o seu conjunto para [$ assmb.dll], e ele vai ficar resolvido para o local de instalação do conjunto. Se este diretório é o GAC, ele será resolvido para o local do GAC.

Você pode encontrar mais informações sobre campos formatado em um MSI aqui .

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