SharpSVN и C# Проблема

При попытке добавить SharpSVN в мой проект на C# компиляция с помощью вызовов, связанных с SharpSVN, выдает мне эту ошибку:

Исключение FileLoadException было необработанным Сборка в смешанном режиме выполняется на основе версии v2.0.50727 среды выполнения и не может быть загружена во время выполнения 4.0 без дополнительной информации о конфигурации.

Что я сделал, так это добавил ссылки из скачанного zip-файла SharpSVN и добавил

using SharpSvn;

Когда я компилирую это работает нормально, но когда я добавляю:

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

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

Это ломается с этой ошибкой. Я искал эту ошибку и не смог найти решение.

3 ответа

Решение

Сборка SharpSVN представляет собой смешанную сборку, созданную в соответствии с версией 2.0 CLR.
Следовательно, он не может быть загружен в CLR версии 4.0.

Вам нужно изменить свой проект на целевой.Net 3.5 (или более раннюю) в свойствах проекта.
Поскольку.Net 2.0, .Net 3.0 и.Net 3.5 все используют версию 2.0 CLR, она будет работать в любой из этих версий.

Добавьте это в ваш app.config, если вы хотите продолжать ориентироваться на.NET 4:

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

Это включит поддержку загрузки сборок смешанного режима (в основном сборок C++/CLI, содержащих как неуправляемый, так и управляемый код), созданных для более старой версии платформы.

Как сказал Жюльен, вам нужно добавить код совместимости в app.config или web.config вашего проекта:

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

Это все хорошо, но если у вас возникла эта проблема с тестовым прогоном (например, MSTest) внутри Visual Studio, вам действительно нужно внести это изменение в файл конфигурации тестового бегуна.

Я написал пост об этой самой проблеме в VS 2012:

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

В Visual Studio 2012 необходимо добавить код запуска в следующий файл:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.config
Другие вопросы по тегам