2010-06-08 14 views
8

Gdy próbuje dodać SharpSVN do mojego C# projektu, kompilacji z SharpSVN związanych połączeń daje mi ten błąd:SharpSVN i C# Problem

FileLoadException był nieobsługiwany Mixed montaż tryb jest zbudowany przed wersją „v2.0.50727” środowiska wykonawczego i nie można go załadować w środowisku wykonawczym 4.0 bez dodatkowych informacji konfiguracyjnych.

Co zrobiłem było dodać referencje od pobranego SharpSVN pliku zip i dodaje

using SharpSvn; 

Kiedy skompilować, że to działa dobrze, ale gdy dodaję:

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

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

Łamie z ten błąd. Przeszukałem ten błąd i nie miałem szczęścia w znalezieniu rozwiązania.

Odpowiedz

6

Zespół SharpSVN jest zespołem mieszanym opartym na wersji 2.0 środowiska CLR.
Z tego powodu nie można go załadować do wersji CLR 4.0.

Musisz zmienić swój projekt na docelowy .Net 3.5 (lub wcześniejszy) w Właściwości projektu.
Od. Net 2.0, .Net 3.0 i .Net 3.5 wszystkie używają wersji 2.0 z CLR, będzie działać w każdej z tych wersji.

+1

lub uzyskać wersja SharpSVN zbudowana z .NET 4.0. –

+0

Podstęp, dzięki. Czy używanie starej wersji .Net jest niebezpieczne? –

+0

@Sam F, Nie, zmiany CLR, dlatego! –

30

Dodaj to do swojej app.config jeśli chcesz zachować kierowanie .NET 4:

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

To umożliwi wsparcie ładowania mieszanych zespołów tryb (głównie C++ zespołów/CLI zawierających kod zarówno niezarządzanego i zarządzane) zbudowany na starszą wersję frameworka.

+0

NIESAMOWITE! Działa to świetnie! –

+0

Cool to działało. – SmallChess

1

Julien wymienić trzeba dodać kod do kompatybilności Twojego projektu app.config lub web.config:

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

To wszystko jest dobrze, ale jeśli masz ten problem z biegacza testowym (podobnie jak MSTest) w Visual Studio, musisz dokonać tej zmiany w pliku konfiguracyjnym testu biegacza.

napisałem posta o tym samym problemem w VS 2012:

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

W Visual Studio 2012, trzeba dodać kod startowy do następującego pliku:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.config