2015-03-23 1 views
0

Ma solution ne construirait pas avec le redouté "Impossible de charger le fichier ou l'assemblage xxxx ou l'une de ses dépendances", donc après beaucoup de recherches, j'ai fini par enlever tout les références et les rajouter dans un par un.Test d'unité a jeté une exception: assembly construit par un nouveau runtime

Maintenant la solution builds, mais mes tests unitaires sont lancer une exception: System.BadImageFormatException: Impossible de charger le fichier ou l'assembly 'WorkflowBuilder_Accessor, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = null' ou un de ses dépendances. Cet assembly est construit par un runtime plus récent que le runtime actuellement chargé et ne peut pas être chargé.

J'ai supprimé l'accesseur et l'ai recréé, reconstruit la solution et ajouté de nouveau les références, mais les tests ne sont toujours pas exécutés. Je ne suis même pas sûr quel assembly me donne le problème, mais j'ai remarqué quelque chose d'étrange à propos de Visual Studio UnitTestFramework.dll - quand je regarde la DLL dans Windows Explorer, c'est la version 10.0, mais après il est ajouté, il montre que 10.1. Est-ce le problème?

Before adding reference - version 10.0 Avant: la version 10,0

After adding - version 10.1 Après: la version 10.1

Je dois ajouter que, j'ai mis cible x86 sur tous mes projets, ce qui est l'une des solutions proposées que j'ai vu.

Répondre

0

Alors, je vais répondre à ma propre question:

Il se avère que Visual Studio 2010 defaults to .NET 4.0, de sorte que le dll test unitaire qui est livré avec le studio est pour cette version. Le framework de cible de test unitaire peut être une version plus récente que votre framework de cible de projet. Je viens donc de définir mon projet de test sur .NET Framework 4.0 et tout fonctionne correctement maintenant.