2010-10-12 3 views
2

J'ai un projet qui a été créé avec VS2008. J'essaye de le construire avec MSBuild 4.0, mais toujours en ciblant le framework 3.5. Lorsque je le fais, j'obtiens l'exception:Pourquoi j'obtiens une exception BadImageFormatException lors de la compilation d'un projet .NET3.5 avec MSBuild 4.0

[exec] ResGen: erreur RG0000: Impossible de charger l'assembly référencé "C: \ WINDOWS \ Microsoft.Net \ assembly \ GAC_MSIL \ PresentationUI \ v4.0_4.0.0.0__31bf3856ad364e35 \ PresentationUI.dll ". Capture d'une exception BadImageFormatException indiquant "Impossible de charger le fichier ou l'assemblage" C: \ WINDOWS \ Microsoft.Net \ assembly \ GAC_MSIL \ Presentation_UI \ v4.0_4.0.0.0__31bf3856ad364e35 \ PresentationUI.dll "ou l'une de ses dépendances. un runtime plus récent que le runtime actuellement chargé et ne peut pas être chargé. ".

Notez qu'il essaie de charger la version 4.0 de PresentationUI.dll, même si je compile pour le framework 3.5. Ce n'est pas grave si je convertis le projet au format VS2010 ou pas, l'erreur est la même.

Répondre

3

Le problème s'est avéré être que le HintPath de l'assembly PresentationUI.dll ne correspond pas à l'emplacement d'assembly réel. Dans ce cas, MSBuild revient à la recherche de l'assemblage dans le GAC. Puisque MSBuild 4.0 s'exécute sur le runtime .NET 4.0, il prend la version 4.0 de l'assembly, ce qui est incompatible avec le projet 3.5 en cours de compilation.

0

J'ai eu le même problème et tout en recherchant la solution dans stackoverflow est tombé sur cette question.Finalement après R & D j'ai obtenu la solution.

Supprimez les anciennes références et ajoutez-en de nouvelles (le cas échéant). Accédez à l'option Compilateur avancé et sélectionnez Target Framework comme 4.0. :) Cela a fonctionné Enjoy.

0

Une raison supplémentaire de cette exception est la non-concordance de la plate-forme cible entre tous les projets de la solution. Par exemple, si quelques projets ont la plate-forme cible en tant que x86 et le reste en x64, vous obtiendrez cette exception.

Questions connexes