Système.BadImageFormatException lors de l'installation de service
Je suis en dessous exception lorsque j'essaie d'exécuter le programme d'installation pour installer le service:
# ./InstallUtil ../../../../Applications/GasPosApp/bin/Wrapper.exe -s ../../../
../Applications/GasPosApp/properties/DispenserViewerApplication.wrapper.conf
Microsoft (R) .NET Framework Installation utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Exception s'est produite lors de l'initialisation de l'installation:
System.BadImageFormatException: Could not load file or assembly 'file:///C:\Appl
ications\GasPosApp\bin\Wrapper.exe' or one of its dependencies. The module was e
xpected to contain an assembly manifest..
- Cette exception est levée lorsque vous mélangez 32 et 64 bits assemblées. Essayez de compiler tous les projets dans AnyCPU.
- Je suis en cours d'exécution juste ce à partir de l'invite de commande. pourriez vous s'il vous plaît jusqu'comment au cours de cette?
- Vous avez toutes les informations dont vous avez besoin dans les réponses. Utilisez simplement l'autre version de InstallUtil et vous serez amende.
- Tapez "où installutil.exe" et raconte-nous ce que vous voyez.
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser la bonne version de la InstallUtil. Si vous essayez d'installer une version 32 bits de service (x86), l'utilisation
et si vous installez une version 64 bits de service (x64), l'utilisation
Notez que le dernier dossier spécifié (v4.0.30319) peut varier d'une machine à partir de la machine. Si vous avez seulement une oldere version de l'infrastructure disponible, vous pouvez rencontrer l'un des dossiers suivants au lieu - v1.0.xxxx, v1.1.xxxx, v2.0.xxxxx, v3.0, v3.5.
Je suis d'accord avec tout ici!!! Cette erreur venir, si vous essayez de charger votre demande ou à l'un des refreanced assemblées dans une défaillance de système d'exploitation format.
http://msdn.microsoft.com/en-us/library/system.badimageformatexception(v=vs. 80).aspx
Microsoft a créé un outil utile appelé CorFlags qui peut être utilisé pour afficher ou définir la plateforme ciblée d'un gérés assemblée.
C:\Program Files\Microsoft.NET\SDK\v2.0\Bin\CorFlags.exe
Syntaxe:
CorFlags nom de fichier
C'est souvent l'indication d'une inadéquation entre 32 et 64 bits. Par exemple, si
Wrapper.exe
est compilé comme x86 et vous installer à l'aide de la version 64 bitsInstallUtil
le processus ne peut pas charger le 32 bitsWrapper.exe
de l'assemblée et lève unBadImageFormatException
.La solution est d'utiliser la version 32 bits
InstallUtil
placé dans leFramework
(pasFramework64
) sous-dossier de la .NET dossier (par exemple,C:\Windows\Microsoft.NET\v4.0.30319\Framework
si vous êtes en utilisant .NET 4 ou 4.5).