Подтвердить что ты не робот

HRESULT: 0x80131040: Расположенное определение манифеста сборки не соответствует ссылке на сборку

Установленное определение манифеста сборки не соответствует ссылке на сборку

получить это при запуске nunit через ncover. Любая идея?

4b9b3361

Ответ 1

Это несоответствие между сборками: DLL, ссылающаяся на сборку, не имеет ожидаемой подписи метода.

Очистите решение, перестройте все и повторите попытку.

Кроме того, будьте осторожны, если это ссылка на что-то, что в GAC; возможно, что-то где-то указывает на неправильную версию. Убедитесь, что (через свойства каждой ссылки) выбрана правильная версия или что для конкретной версии установлено значение false.

Ответ 2

У меня недавно возникла эта проблема, и я запустил файл depend.exe в соответствующей DLL. Он показал мне, что dll была скомпилирована в x86, а некоторые из зависимостей были скомпилированы в x64.

Если у вас все еще возникают проблемы, я бы рекомендовал использовать файл depend.exe.

Ответ 3

Это обычно происходит, когда версия одной из DLL тестовой среды не соответствует среде разработки.

Очистите и создайте свое решение и переместите все свои DLL в среду, где происходит ошибка, которая должна исправить ее

Ответ 4

В моем случае для проекта службы wcf rest services мне пришлось добавить в web.config раздел времени выполнения, где была запрошенная dll, затем я добавляю:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
.
.
.
  <runtime>

Ответ 5

Мои проблемы решаются удалением всей части времени выполнения

<runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

Ответ 6

В моей конкретной ситуации я получил это в результате CreateObject, выполненного в VBScript. Причиной в моем случае была версия сборки, которая находилась в GAC, которая была старше той, которую я скомпилировал. (пытаясь решить более раннюю проблему, я установил сборку в GAC).

Итак, если вы работаете с видимыми классами COM, убедитесь, что вы удалите старые версии своей сборки из GAC, прежде чем регистрировать новую сборку с помощью RegASM.

Ответ 7

У меня возникли аналогичные проблемы при доступе к файлам проектов с разных компьютеров через общую папку. В моем случае чистая + reabuild не помогла. Необходимо удалить папки bin и objects из выходного каталога.

Ответ 8

В моем случае это происходило из-за WebGrease. Я обновил его до последней версии (используя NuGet), но он был конфликтует с зависимостями. Я вручную добавил код ниже в web.config, и он работал как прелесть.

<dependentAssembly>
    <assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>

Обратите внимание, что мое решение будет работать только тогда, когда ошибка связана с WebGrease. Код ошибки останется прежним. Кроме того, вам необходимо изменить версию в oldVersion и newVersion соответственно.

Ответ 9

Я столкнулся с этой проблемой в проекте web api.

Проект Api использовал пакет nuget библиотеки с версией 3. И одна из ссылочных ассемблеров говорит, что X использует более старую версию того же пакета nuget с версией 2.

Всякий раз, когда строится ссылка на сборку или восстанавливается какой-либо другой проект, ссылающийся на X, сборки проекта api обновляются с более низкой версией. И получил эту ошибку ссылочной сборки.

Перестроить работы, но в моем случае я хотел найти долгосрочное решение.

Я сделал сборки ссылкой на ту же версию пакета nuget.

Ответ 10

Еще один случай. У меня была эта ошибка из Managed Debugging Assistant в первый раз десериализации файла XML в объекты под VS2010/.NET. 4. Объекты, связанные с DLL для объектов, генерируются в событии после сборки (обычное дело в стиле Microsoft). Работал очень хорошо для нескольких проектов в одном и том же решении, проблема возникла при выполнении этого в еще одном проекте. Текст ошибки:

Обнаружено BindingFailure Сообщение: сборка с отображаемым именем MyProjectName.XmlSerializers 'не удалось загрузить в привязке' LoadFrom ' контекст AppDomain с идентификатором 1. Причиной отказа было: System.IO.FileLoadException: не удалось загрузить файл или сборку MyProjectName.XmlSerializers, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null или одна из его зависимостей. Расположенные определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Так как некоторые ответы здесь показали несоответствие платформы, я заметил, что 3 проекта и решение выбрали конфигурацию "смешанных платформ", а 3 проекта были скомпилированы для x86 вместо AnyCPU. У меня нет кода, специфичного для платформы (хотя некоторые библиотеки DLL, поставляемые поставщиками, полагаются на несколько библиотек x86). Я заменил все вхождения x86 в AnyCPU следующим:

for a in $( egrep '(x86|AnyCPU)' */*.csproj *.sln -l  ) ; do echo $a ; sed -i 's/x86/AnyCPU/' $a ; done

Затем проект будет построен, но все опции для запуска или отладки кода будут выделены серым цветом. Перезапуск VS не помог.

Я вернул с помощью git ссылки на x86-библиотеку, на всякий случай, но сохранил AnyCPU для всего компилируемого кода.

После F5 или кнопка запуска отладки Greyed Out для приложения Winform? Я выгрузил и перезагрузил начальный проект (это был тот, где начальная проблема появилась в первое место).

После этого все откидывалось на место: программа работает без начальной ошибки.

См. http://www.catb.org/jargon/html/R/rain-dance.html, http://www.catb.org/jargon/html/V/voodoo-programming.html или http://www.catb.org/jargon/html/I/incantation.html и ссылки там.

Ответ 11

У меня возникла проблема, когда он не нашел сборку PayPal, и это было потому, что я назвал свое решение PayPal. Я уверен, что это не будет ответом для всех, но я думал, что все равно его поделил: С# ASP.NET MVC PayPal не находит сборку

Ответ 12

Я просто удаляю файл settings.lic из проекта и начинаю работать!

Ответ 13

Если вы получили эту ошибку, пытающуюся добавить компонент в Visual Studio, - Microsoft.VisualStudio.TemplateWizardInterface - (после попытки установить странные средства разработки)

рассмотрите это решение (любезно предоставлено larocha (спасибо, кто бы вы ни были)):

  • Открыть C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe.config в текстовом редакторе
  • Найдите эту строку: "Microsoft.VisualStudio.TemplateWizardInterfac e"
  • Комментируйте элемент таким образом, чтобы он выглядел следующим образом:

<dependentAssembly>
<!-- assemblyIdentity name="Microsoft.VisualStudio.TemplateWizardInterface" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" / -->
<bindingRedirect oldVersion="0.0.0.0-8.9.9.9" newVersion="9.0.0.0" />
</dependentAssembly>

источник: http://webclientguidance.codeplex.com/workitem/15444