HRESULT: 0x80131040: Расположенное определение манифеста сборки не соответствует ссылке на сборку
Установленное определение манифеста сборки не соответствует ссылке на сборку
получить это при запуске nunit через ncover. Любая идея?
Ответы
Ответ 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