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

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

8 голосов
/ 08 июня 2010

При попытке добавить 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 ]

30 голосов
/ 08 июня 2010

Добавьте это в свой app.config, если вы хотите сохранить таргетинг на .NET 4:

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

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

6 голосов
/ 08 июня 2010

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

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

1 голос
/ 13 сентября 2012

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