J'ai un service Windows écrit en C# à l'aide de Visual Studio 2010 et le ciblage .NET Framework 4. Quand je le lance à partir d'une version de Débogage du service s'exécute comme prévu. Cependant, quand je le lance à partir d'une Version de build-je obtenir un Système.BadImageFormatException (détails ci-dessous). J'ai été chercher sur internet une solution, mais jusqu'à présent, chaque chose que j'ai trouvé n'a pas m'a aidé à trouver une solution.
Le problème existe aussi bien sur Windows 7 64 bits (dev) et Windows XP SP3 32 bits (la cible).
Voici ce que j'ai essayé jusqu'à présent:
- Vérifié construire des paramètres tels que la Plate-forme Cible sont tous les mêmes (x86).
- Utilisé peverify avec l'option /verbose pour assurer le montage binaires ont été valide.
- Utilise fuslogvw à regarder pour tous les problèmes de charge.
- Utilisé CheckAsm pour rechercher des fichiers manquants ou assembiles.
L'ensemble de ces contrôles n'a rien changé. J'ai inclus le texte intégral de l'exception de l'information ci-dessous, avec quelques-uns des noms ont été changés pour protéger les secrets de mon entreprise maîtres.
Système.BadImageFormatException était non gérée Message=impossible de charger le fichier ou l'assembly 'XxxDevices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Une tentative a été faite pour charger un programme avec un format incorrect. Source=XxxDevicesService FileName=XxxDevices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null FusionLog=Assemblée manager chargé de: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll L'exécution en vertu de l'exécutable c:\Dev\TeamE\bin\Release\XxxDevicesService.vshost.exe --- Un journal d'erreurs détaillé de la façon suivante. === Pré-lier les informations d'état === JOURNAL: Utilisateur = XXX JOURNAL: DisplayName = XxxDevices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (Complètement spécifié) JOURNAL: Appbase = file:///c:/Dev/TeamE/bin/Release/ JOURNAL: Initiale PrivatePath = NULL Appel de l'assemblée : XxxDevicesService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. === JOURNAL: Cette liaison commence en charge par défaut le contexte. JOURNAL: l'Utilisation de fichier de configuration d'application: c:\TeamE\bin\Release\XxxDevicesService.vshost.exe.Config JOURNAL: l'Utilisation de fichier de configuration d'hôte: JOURNAL: l'Utilisation de la machine fichier de configuration de C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config. JOURNAL: Politiques ont pas été appliquées de référence à cette époque (privé, personnalisé, partielle, ou de l'emplacement de montage bind). JOURNAL: la Tentative de téléchargement de la nouvelle URL file:///c:/TeamE/bin/Release/XxxDevices.DLL. Erreur: Échec pour terminer l'installation de l'assemblée (hr = 0x8007000b). Sondage terminé. StackTrace: au XxxDevicesService.Programme.Main(String[] args) au Système.Domaine d'application._nExecuteAssembly(RuntimeAssembly assemblée, String[] args) chez Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() au Système.Le filetage.ExecutionContext.Exécuter(ExecutionContext executionContext, ContextCallback rappel, état de l'Objet, Boolean ignoreSyncCtx) au Système.Le filetage.ExecutionContext.Exécuter(ExecutionContext executionContext, ContextCallback rappel, l'état de l'Objet) au Système.Le filetage.ThreadHelper.ThreadStart() InnerException: