J'essaie de charger une DLL bêta de Visual Studio 2010 dans l'interface graphique NUnit. Je reçois une erreur contextuelle.
Cet assembly est construit par un runtime plus récent que le runtime actuellement chargé et ne peut pas être chargé. Vous tentez peut-être de charger une génération d'assembly avec une version ultérieure du CLR que la version sous laquelle NUnit s'exécute actuellement.
Comment forcer un exécutable à s'exécuter sous .NET 4?
J'ai téléchargé la source NUnit 2.5 et ouvert la solution VS2008 dans la version bêta de VS2010. Une fois la conversion terminée, j'ai ouvert tous les projets et changé le paramètre de framework cible pour tous les projets en ".NET Framework 4.0". J'ai ensuite construit la solution sans aucune erreur. Je peux maintenant utiliser l'application NUnit GUI pour exécuter des tests conçus pour .NET 4.0. Je n'ai pas effectué de test exhaustif de cette version, il peut donc y avoir des problèmes, mais pour mes besoins, cela fonctionne bien.
Mise à jour: il n'est pas nécessaire de reconstruire NUnit. J'ai découvert que si vous ajoutez ce qui suit au fichier de configuration NUnit approprié, vous pouvez exécuter une DLL de test conçue pour .NET 4.0.
Sous <configuration>, ajoutez:
<startup>
<supportedRuntime version="v4.0.30319" />
</startup>
et sous <runtime> ajoutez:
<loadFromRemoteSources enabled="true" />
Avec la sortie de .NET 4, j'ai utilisé
<supportedRuntime version="v4.0.30319" />
dans NUnit 2.5.4 exe.config au lieu de requiredRuntime, et la balise loadFromRemoteResources comme indiqué ci-dessus et tout fonctionnait bien. Merci!
Vous n'avez à modifier aucun fichier
il suffit d'ouvrir ce fichier et tout fonctionnera très bien
C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-x86.exe
Dans NUnit 2.5.5 vous pouvez spécifier dans la ligne de commande l'option /framework = net-4.0 et il est compatible avec les nouveaux assemblages générés avec la sortie du dernier VS2010.
Pour trouver votre version .net 4 à partir du Visual [C # 2010 Express, ou qui jamais] allez dans "A propos" de l'application Visual sous l'élément d'aide du menu. Il doit apparaître comme la version sous la ligne Microsoft .NET Framework en haut à droite de la fenêtre.
La solution proposée a très bien fonctionné pour faire fonctionner NUnit. Malheureusement, lorsque je suis arrivé à l'étape de la couverture du code, NCover a commencé à me donner:
Processus profilé terminé. Connexion du profileur non établie.
La meilleure solution que j'ai trouvée à cela était d'utiliser simplement la version "-x86" de NUnit avec NCover:
NCover.Console.exe nunit-console-x86.exe --paramètres supplémentaires--
Fonctionne maintenant.
J'ai rencontré le même message d'erreur lors de l'exécution de NUnit 2.4.8. Comme je n'avais pas mis à niveau depuis un certain temps, j'ai installé la NUnit actuelle (v2.5.9) et j'ai constaté qu'elle prend désormais en charge les assemblages VS2010. Donc, si vous avez récemment rencontré cette erreur vérifiez votre version NUnit : en décembre 2010 (ou alors) la chose seulement que vous devez faire est de mettre à niveau NUnit.
Depuis NUnit 2.5.10, vous pouvez activer la prise en charge de Visual Studio dans le runner GUI:
Outils-> Paramètres-> IDE Support
Après cela, j'ai réussi à me connecter au processus nunit-agent.exe qui exécute votre assembly dans un domaine d'application .NET 4.0
Si vous rencontrez ce problème après la mise à niveau vers nunit 2.5.5, vous devrez mettre à niveau nant vers la dernière version pour moi, c'était .91 alpha.