2010-06-08 14 views
8

Cuando se trata de añadir SharpSVN a mi proyecto de C#, compilar con llamadas relacionadas SharpSVN me da este error:SharpSVN y C# Problema

FileLoadException era no controlada montaje de modo mixto se construye contra la versión 'v2.0.50727' del tiempo de ejecución y no se puede cargar en el tiempo de ejecución 4.0 sin información de configuración adicional.

Lo que hice fue agregar las referencias en el archivo zip SharpSVN descargado y añade el

using SharpSvn; 

Cuando compilo que funciona bien, pero cuando agrego:

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

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

rompe con ese error He buscado este error y no he tenido suerte para encontrar una solución.

Respuesta

6

El conjunto SharpSVN es un conjunto mixto construido en la versión 2.0 de la CLR.
Por lo tanto, no se puede cargar en CLR versión 4.0.

Necesita cambiar su proyecto a destino .Net 3.5 (o anterior) en Propiedades del proyecto.
Dado que .Net 2.0, .Net 3.0 y .Net 3.5 usan la versión 2.0 del CLR, funcionará en cualquiera de esas versiones.

+1

u obtener una versión de SharpSVN construida con .NET 4.0. –

+0

Hizo el truco, gracias. ¿No es seguro usar una versión anterior de .Net? –

+0

@Sam F, No hay cambios CLR, ¡por eso! –

30

Agregue esto a su app.config si desea mantener la orientación .NET 4:

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

Esto permitirá que el apoyo introducción de conjuntos de modo mixto (en su mayoría asambleas ++/CLI C que contengan código no administrado y gestionado tanto) creado para una versión anterior del marco.

+0

¡IMPRESIONANTE! Esto funciona genial! –

+0

Cool funcionó. – SmallChess

1

Como Julien mencionado es necesario agregar el código de compatibilidad a app.config o web.config de su proyecto:

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

Todo esto está muy bien, pero si usted está teniendo este problema con un corredor de prueba (como MSTest) dentro de Visual Studio, en realidad tiene que hacer este cambio en el archivo de configuración del corredor de prueba.

escribí un post sobre este mismo problema en VS 2012:

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

En Visual Studio 2012, es necesario agregar el código de inicio en el siguiente archivo:

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