Je développe sous Windows 7 64 bits avec Visual Studio 2008. J'ai une collection de bibliothèques de classes que je fusionne en une seule DLL en utilisant ILMerge. Cependant, lorsque je tente d'utiliser cette DLL fusionné, je reçoisBadImageFormatException avec DLL .NET ILMerged sous Windows 7 64
[BadImageFormatException: Impossible de charger le fichier ou l'assembly « MyMergedDll » ou une de ses dépendances. On a tenté de charger un programme avec un format incorrect.]
J'ai cherché autour de l'aide avec cela et il semblait que je devais définir la propriété de construction dans chaque projet MyMergedDll pour cibler x86, donc je l'ai fait. J'ai également défini tous les projets non-MSTest dans le service Web dans lequel je référence MyMergedDll pour cibler x86. Je reçois toujours cette erreur, cependant.
Si this blog entry est à croire, je peux obtenir cette erreur en raison de faire:
public class SpecificClass: BaseClass: where T : class { }
C'est, ayant une contrainte de classe sur un générique. L'article de blog date de 2007, donc je ne sais pas si cela s'applique toujours. Je voulais des informations de StackOverflow sur ce que les gars pensent du problème avant d'aller chercher toutes les classes génériques dans mes projets pour vérifier les contraintes.
Si cela est important, MyMergedDll est signé avec un nom fort. J'essaye d'employer MyMergedDll dans une application de console et dans un service Web. Je ne sais pas si les choses sont peut-être compliquées par le fait que IIS mette à jour chaque fois que je reconstruis le service web. Avec l'application de console, je semble seulement obtenir le BadImageFormatException
quand je construis en mode de libération.
Pouvez-vous clarifier certains points: 1. Avez-vous l'erreur lors de l'exécution de ILMerge ou pendant l'exécution de l'application? –
Les DLL de projet individuelles se fusionnent parfaitement avec ILMerge. L'application de console et le service Web qui utilisent la DLL fusionnée sont très bien construits. J'obtiens l'erreur quand j'ai soit) exécutez mon application de console ou b) visitez le fichier .asmx sur mon serveur Web exécutant le service Web. –