Question

Lorsque vous essayez d'ajouter SharpSVN à mon projet C #, la compilation avec SharpSVN appels correspondants me donne cette erreur:

FileLoadException était Unhandled Le mode mixte est construit assemblage contre la version « v2.0.50727 » du moteur d'exécution et ne peut pas être chargé dans la version 4.0 d'exécution sans informations de configuration supplémentaires.

Ce que je faisais était d'ajouter les références du fichier ZIP téléchargé SharpSVN et a ajouté le

using SharpSvn;

Quand je compile que cela fonctionne très bien, mais quand j'ajoute:

string targetPath = "https://bobl/svn/ConsoleApplication1";

SvnTarget target;
SvnTarget.TryParse(targetPath, out target);

Il rompt avec cette erreur. J'ai recherché cette erreur et ai pas eu de chance à trouver une solution.

Était-ce utile?

La solution

Le SharpSVN est l'assemblage d'un ensemble mixte construit contre la version 2.0 du CLR.
Par conséquent, il ne peut pas être chargé dans la version CLR 4.0.

Vous devez changer votre projet cible .Net 3.5 (ou plus tôt) dans les propriétés du projet.
Depuis .Net 2.0, .Net 3.0 et .Net 3.5 toutes les version 2.0 d'utilisation du CLR, il fonctionnera dans l'une de ces versions.

Autres conseils

Ajouter à votre app.config si vous voulez garder le ciblage .NET 4:

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

Cela permettra au support de chargement des assemblages en mode mixte (la plupart des ensembles C ++ / CLI contenant à la fois du code non managé et géré) construit pour une ancienne version du cadre.

Comme mentionné Julien, vous devez ajouter le code de compatibilité à votre app.config de projet ou web.config:

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

Ceci est bien beau, mais si vous rencontrez ce problème avec un coureur de test (comme MSTest) dans Visual Studio, vous avez réellement faire ce changement dans le fichier de configuration du lanceur de test.

J'ai écrit un post sur ce problème très VS 2012:

http://www.diaryofaninja.com/blog/2012/09/13/net-20-mixed-mode-assemblies-in-visual-studio-net-45-test-projects

Dans Visual Studio 2012, vous devez ajouter le code de démarrage dans le fichier suivant:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.config
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top