Установленное определение манифеста сборки не соответствует ссылке на сборку
получить это при запуске nunit через ncover. Любая идея?
Установленное определение манифеста сборки не соответствует ссылке на сборку
получить это при запуске nunit через ncover. Любая идея?
Это несоответствие между сборками: DLL, ссылающаяся на сборку, не имеет ожидаемой подписи метода.
Очистите решение, перестройте все и повторите попытку.
Кроме того, будьте осторожны, если это ссылка на что-то, что в GAC; возможно, что-то где-то указывает на неправильную версию. Убедитесь, что (через свойства каждой ссылки) выбрана правильная версия или что для конкретной версии установлено значение false.
У меня недавно возникла эта проблема, и я запустил файл depend.exe в соответствующей DLL. Он показал мне, что dll была скомпилирована в x86, а некоторые из зависимостей были скомпилированы в x64.
Если у вас все еще возникают проблемы, я бы рекомендовал использовать файл depend.exe.
Это обычно происходит, когда версия одной из DLL тестовой среды не соответствует среде разработки.
Очистите и создайте свое решение и переместите все свои DLL в среду, где происходит ошибка, которая должна исправить ее
В моем случае для проекта службы 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>
Мои проблемы решаются удалением всей части времени выполнения
<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>
В моей конкретной ситуации я получил это в результате CreateObject
, выполненного в VBScript.
Причиной в моем случае была версия сборки, которая находилась в GAC, которая была старше той, которую я скомпилировал. (пытаясь решить более раннюю проблему, я установил сборку в GAC).
Итак, если вы работаете с видимыми классами COM, убедитесь, что вы удалите старые версии своей сборки из GAC, прежде чем регистрировать новую сборку с помощью RegASM.
У меня возникли аналогичные проблемы при доступе к файлам проектов с разных компьютеров через общую папку. В моем случае чистая + reabuild не помогла. Необходимо удалить папки bin и objects из выходного каталога.
В моем случае это происходило из-за 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 соответственно.
Я столкнулся с этой проблемой в проекте web api.
Проект Api использовал пакет nuget библиотеки с версией 3. И одна из ссылочных ассемблеров говорит, что X использует более старую версию того же пакета nuget с версией 2.
Всякий раз, когда строится ссылка на сборку или восстанавливается какой-либо другой проект, ссылающийся на X, сборки проекта api обновляются с более низкой версией. И получил эту ошибку ссылочной сборки.
Перестроить работы, но в моем случае я хотел найти долгосрочное решение.
Я сделал сборки ссылкой на ту же версию пакета nuget.
Еще один случай. У меня была эта ошибка из 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 и ссылки там.
У меня возникла проблема, когда он не нашел сборку PayPal, и это было потому, что я назвал свое решение PayPal. Я уверен, что это не будет ответом для всех, но я думал, что все равно его поделил: С# ASP.NET MVC PayPal не находит сборку
Я просто удаляю файл settings.lic из проекта и начинаю работать!
Если вы получили эту ошибку, пытающуюся добавить компонент в Visual Studio, - Microsoft.VisualStudio.TemplateWizardInterface
- (после попытки установить странные средства разработки)
рассмотрите это решение (любезно предоставлено larocha (спасибо, кто бы вы ни были)):
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