Pregunta

Tengo un ensamblaje con el siguiente manifiesto incrustado:

<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>

En una de mis máquinas este ensamblaje no funciona (el ensamblaje no se carga). Abrir esto en el caminante de dependencia me da el siguiente mensaje de error:

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).

El ensamblaje idéntico funciona bien en otra máquina, y no obtengo ningún error con el caminante de dependencia.

Hasta donde puedo resolver el problema se debe a que la primera máquina no tiene una dependencia de algún tipo (por ejemplo, el MSVCR redistribuible), sin embargo, ya lo he comprobado y el Microsoft Visual C ++ 2005 Redistributable está bien instalado en ambos máquinas.

¿Cómo hago para averiguar cuál es la dependencia que falta?

Lo único que he notado es que el directorio WinSxS en la máquina de trabajo tiene una entrada adicional:

x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_473666fd
¿Fue útil?

Solución

¡Ordenado!

Alguien amablemente me señaló que el '' 'SomeAssembly.dll' '' ¡mencionado en Dependency Walker era, de hecho, un dll diferente del que abrí en Dependency Walker! (¡Vaya!)

Al observar el manifiesto de este ensamblado, puedo ver que el problema se debe al hecho de que Microsoft.VC80.CRT v8.0.50727.4053 está dirigido, pero no está presente en esta máquina. (Instalado a través de una actualización de seguridad).

Otros consejos

Después de luchar con el mismo problema, he notado que las actualizaciones aplicadas a la instalación de desarrollo de Visual Studio podrían abordar algunas actualizaciones de máquinas de destino:

Actualizaciones de Visual Studio

Por ejemplo, la actualización resaltada arriba aborda esta pregunta específica.

Instalado de retransmisión en paralelo, le sugiero que no incluya el " archivo de manifiesto " dentro de tu asamblea. Especialmente porque no puede estar seguro de que la PC en la que va a instalar su software esté actualizada a la versión incluida en su manifiesto.

Puede deshabilitarlo configurando la propiedad del proyecto " Linker \ Manifest File \ Generate Manifest " a " No " ;.

Espero que esto pueda ayudar. Buena suerte

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top