Pergunta

Eu tenho uma montagem com o seguinte manifesto incorporado:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>

Em uma de minhas máquinas esta assembléia não funciona (a montagem não for carregado). A abertura deste em dependência walker me dá a seguinte mensagem de erro:

Error: The Side-by-Side configuration information for "SomeAssembly.dll" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001).

O conjunto idêntico funciona bem em outra máquina, e eu recebo nenhum erro com dependência walker.

Tanto quanto eu posso trabalhar para fora o problema é devido à primeira máquina faltando uma dependência de algum tipo (por exemplo, o redistribuível MSVCR), porém eu já verifiquei eo Microsoft Visual C ++ 2005 Redistributable está bem instalado em ambos máquinas.

Como eu faço para descobrir o que a dependência ausente é?

A única coisa que tenho notado é que o diretório WinSxS na máquina de trabalho tem uma entrada adicional:

x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_473666fd
Foi útil?

Solução

Ordenado!

Alguém gentilmente me apontou que o 'SomeAssembly.dll "' mencionado no Dependency Walker era na verdade uma dll diferente da que eu abri em Dependency Walker! (Whoops!)

Olhando para o manifesto para esta assembléia eu posso ver que o problema é devido ao fato de que Microsoft.VC80.CRT v8.0.50727.4053 é alvejado, mas não está presente nesta máquina. (Instalado por meio de uma atualização de segurança).

Outras dicas

Depois de lutar com o mesmo problema, tenho notado que as atualizações aplicadas a instalação de desenvolvimento Visual Studio pode lidar com algumas atualizações de máquina-alvo:

Visual Studio Updates

Por exemplo, a atualização destacado acima aborda esta questão específica.

Instaed de afinação do lado a lado eu sugiro que você não incluem o "arquivo de manifesto" dentro de sua montagem. Expecially porque você não pode ter certeza que o PC que você vai instalar o seu software é atualizado para a versão incluída no seu manifesto.

Você pode desativá-lo definindo a propriedade projeto "Linker \ manifesto de arquivo \ Gerar manifesto" para "Não".

Espero que isso poderia ajudar. Boa sorte

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