Ошибка SharpSVN в VS2010

Я пытаюсь заставить SharpSVN работать с проектом VB.NET, над которым я работаю в VS2010. Я добавил SharpSVN.dll в свои ссылки на проект, но при попытке загрузить сайт появляется следующая ошибка:

Could not load file or assembly 'SharpSvn' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Описание: во время выполнения текущего веб-запроса возникло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.BadImageFormatException: не удалось загрузить файл или сборку "SharpSvn" или одну из ее зависимостей. Была предпринята попытка загрузить программу с неверным форматом.

Ошибка источника:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Моя машина 64-разрядная, и я настроил Configuration Manager на сборку x64, а также скопировал 64-разрядную версию SharpSVN.dll в каталог bin моего проекта. Кроме того, я также попытался установить сборку на x86 и использовать x86-версию SharpSVN.dll, и появляется та же ошибка (поэтому я подозреваю, что ошибка может быть не напрямую связана с семейством набора инструкций).

В моем файле конфигурации я попытался добавить следующее к атрибуту сборок:

<add assembly="SharpSvn, Version=1.6016.1637.10768, Culture=neutral, PublicKeyToken=d729672594885a28"/>

Любые идеи?


person Kevin    schedule 19.09.2011    source источник
comment
У меня похожая проблема, т. Я получаю эту ошибку, но мой проект больше не использует SharpSVN (некоторое время назад он был удален, но мы его удалили). Работал нормально в течение нескольких месяцев, внезапно вышел из строя в одночасье без каких-либо изменений. Очень расстраивает, поскольку нигде в проекте или в системе нет никаких ссылок на SharpSVN.   -  person Brian Knoblauch    schedule 12.07.2013


Ответы (3)


У меня такая же ошибка, и я не могу объяснить, что происходит. Однако в 32-битной версии ошибка более наглядна:

Unhandled Exception: System.IO.FileLoadException: Mixed mode assembly is built against 
  version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without 
  additional configuration information.

Что вы можете исправить, добавив следующий фрагмент в ваш app.config

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

Не уверен, что не так с 64-битной версией, но вы всегда можете собрать ее из исходного кода.

person jeroenh    schedule 19.09.2011
comment
Я уже пытался добавить этот фрагмент, и VS сообщает мне, что информация о схеме для атрибута не может быть найдена. Я не уверен, действительно ли это предотвращает компиляцию или нет, поэтому я попробую. Спасибо! - person Kevin; 19.09.2011

Несмотря на то, что я думал, что <add assembly> было достаточно, я фактически решил эту проблему, добавив SharpSvn в GAC (на случай, если кто-то тоже столкнется с этой проблемой).

person Kevin    schedule 20.09.2011
comment
У меня была такая же проблема, и я решил ее, используя версию x86. Ни настройки проекта, ни GAC не помогли. Что-то странное тут происходит... - person user2173353; 19.08.2013

Я не уверен, почему добавление в GAC сработало для вас, это неправильное поведение для загрузчика сборки.

Ошибка относится к разрядности сборки. SharpSVN — это сборка смешанного режима, т. е. она содержит как управляемый, так и неуправляемый код. Вы должны конкретно ориентироваться на x86 (с x86 SharpSVN Assembly) или x64 (опять же с соответствующей сборкой). Кроме того, вы должны явно указать, что все ваши сборки должны быть x86 или x64. Нацеливание на любой ЦП позволит среде выполнения принять это решение за вас, и она не сможет загрузить SharpSvn.dll, если выберет длину слова, не соответствующую DLL SharpSvn.

person cmdematos    schedule 24.10.2011