Проблема 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, она будет работать в любой из этих версий.


добавьте это в свое приложение.config если вы хотите сохранить таргетинг на .NET 4:

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

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


Как упоминал Жюльен, вам нужно добавить код совместимости в приложение вашего проекта.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