Lado-a-lado erro de configuração (Microsoft.VC80.CRT v8.0.50608.0)
-
07-07-2019 - |
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
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:
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