Problema de Sharpsvn y C#
-
24-10-2019 - |
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.
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:
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