Question

J'ai un assemblage contenant le manifeste suivant:

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

Sur l’une de mes machines, cet assemblage ne fonctionne pas (l’assemblage ne parvient pas à se charger). L’ouverture de ce lien dans la dépendance me donne le message d’erreur suivant:

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

L’assemblage identique fonctionne correctement sur une autre machine et je n’obtiens aucune erreur avec Dependance Walker.

Pour autant que je sache, le problème est dû au fait que la première machine manquait d'une dépendance (par exemple, le redistribuable MSVCR), mais j'ai déjà vérifié et le redistribuable Microsoft Visual C ++ 2005 est installé correctement sur les deux machines.

Comment puis-je déterminer la dépendance manquante?

La seule chose que j'ai remarquée, c'est que le répertoire WinSxS de la machine en fonctionnement comporte une entrée supplémentaire:

x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_473666fd
Était-ce utile?

La solution

Trié!

Quelqu'un m'a gentiment fait remarquer que le '' SomeAssembly.dll '' mentionné dans Dependency Walker était en fait une DLL différente de celle que j’avais ouverte dans Dependency Walker! (Oups!)

En regardant le manifeste de cet assemblage, je constate que le problème est dû au fait que Microsoft.VC80.CRT v8.0.50727.4053 est ciblé mais n'est pas présent sur cette machine. (Installé via une mise à jour de sécurité).

Autres conseils

Après avoir rencontré le même problème, j'ai constaté que les mises à jour appliquées au développement de l'installation de Visual Studio pouvaient concerner certaines mises à jour de la machine cible:

Mises à jour de Visual Studio

Par exemple, la mise à jour en surbrillance ci-dessus répond à cette question spécifique.

Au lieu de relayer côte à côte, je vous suggère de ne pas inclure le fichier "Manifeste". à l'intérieur de votre assemblée. Surtout parce que vous ne pouvez pas être sûr que le PC sur lequel vous allez installer votre logiciel est mis à jour avec la version incluse dans votre manifeste.

Vous pouvez le désactiver en définissant la propriété de projet "Linker \ Manifest File \ Generate Manifest". pour "Non".

J'espère que cela pourrait aider. Bonne chance

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top