Pregunta

Al intentar agregar SharpSVN a mi proyecto C#, la compilación con llamadas relacionadas con SharpSVN me da este error:

FileloadException fue el ensamblaje de modo mixto sin control se basa en 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 del archivo zip sharpsvn descargado y agregar el

using SharpSvn;

Cuando compilo que funciona bien, pero cuando agrego:

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

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

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

¿Fue útil?

Solución

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

Debe cambiar su proyecto a apuntar .NET 3.5 (o anterior) en las propiedades del proyecto.
Desde .NET 2.0, .NET 3.0 y .NET 3.5 usan la versión 2.0 del CLR, funcionará en cualquiera de esas versiones.

Otros consejos

Agregue esto a su App.Config si desea seguir apuntando .NET 4:

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

Esto habilitará el soporte de carga de ensambles de modo mixto (principalmente ensamblajes de C ++/CLI que contienen código no administrado y administrado) creados para una versión anterior del marco.

Como Julien mencionó, debe agregar el código de compatibilidad a la aplicación de su proyecto.

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

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

Escribí una publicación sobre este mismo problema en VS 2012:

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

En Visual Studio 2012, debe agregar el código de inicio al siguiente archivo:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.config
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top