Pergunta

Eu tenho um assembly criado já, dizer Static.dll, e uma montagem dinâmica que eu estou criando em tempo de execução, dizer Dynamic. Dynamic cria alguns IL código para criar um novo tipo de Static.dll.Quando Dynamic é criado (ele salva com êxito), o executável, quando correu, erros porque não é possível carregar o assembly Static.dll escreva.Eu acredito que isso está acontecendo desde o Dynamic exe saída não pode encontrar essa dll (ou pelo menos esse é o meu palpite).

Como pode realizar a adição deste Static.dll referência, de modo que, quando alguém executa o executável resultante de saída de Dynamic que ele pode encontrar o referenciado tipos?

O que eu sei sobre Assembly.Load(), mas isso por si só não muda nada.Ou pelo menos, não tenho certeza de que isso me dá, pois eu não preciso usar o tipo em tempo de execução, mas sim, quando executar o Dynamic executável.

Por último, eu controlo o Static.dll, então, se há algo que eu possa fazer com o projeto para corrigi-lo, Isso poderia ser feito, no entanto, ele não precisa permanecer separados (eu não quero Emitir esta biblioteca para cada vez que eu criar uma dinâmica de montagem).Basicamente, Eu acho que Eu quero ter o meu montagem dinâmica para ter um .assembly extern mscorlib no manifesto salvar Static é um local de mscorlib.

Obrigado

Foi útil?

Solução

Como pode realizar a adição deste Static.dll referência, de modo que, quando alguém executa o executável resultante de saída de Dynamic que ele pode encontrar o referenciado tipos?

A referência será automaticamente adicionada.Note que o normal assembleia-sondagem regras se aplicam quando a sua montagem dinâmica executa, por isso, para encontrar o assembly.Você deve (ou um dos):

  • navio static.dll ao lado de dynamic.dll
  • coloque static.dll no GAC (mas, por favor:não faça isso!)
  • executar dynamic.dll em um Domínio de aplicação com um costume de sondagem-caminho de configuração que permite que static.dll ser encontrado
  • identificador de Domínio de aplicação.AssemblyResolve para fornecer static.dll
  • usar algo como ILMerge para fusível static.dll e dynamic.dll
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top