Я немного изучал это, и пока не решил. Я получаю следующее сообщение об ошибке:
Compiler Error Message: CS1705: Assembly 'My.Model, Version=1.1.4422.23773, Culture=neutral,
PublicKeyToken=bfde95ba233094b2' uses
'Common, Version=3.3.4273.24368, Culture=neutral, PublicKeyToken=bfde95ba233094b2'
which has a higher version than referenced assembly
'Common, Version=3.3.4269.17112, Culture=neutral, PublicKeyToken=bfde95ba233094b2'
c:\WINDOWS\assembly\GAC_MSIL\Common\3.3.4269.17112__bfde95ba233094b2\Common.dll:
(Location of symbol related to previous error)
На веб-сервере работает Server 2003. Я зашел в c: \ windows \ assembly и действительно заметил, что в списке указаны 3 версии Common.dll. Самая высокая версия в списке - 3.3.4269.17112.
Я скопировал dll с версией: 3.3.4273.24368 в каталог сборки. Затем я перекомпилировал и повторно развернул свой код (возможно, излишний, но да ладно). Когда я открыл свой браузер в новом сеансе и снова перешел по URL-адресу сайта, я все еще получил то же сообщение.
Я могу использовать проводник Windows и проверить, что теперь указан Common.dll с более высокой версией.
Что еще я могу изучить, чтобы решить эту проблему? Я не хочу изменять ссылку в моей сборке, чтобы указывать на более старую версию.
источник
*.*
номера версий. Восстановите все, только так можно быть уверенным.Ответы:
3 идеи, которые стоит попробовать:
источник
У меня была эта ошибка, потому что «Rebuild» на самом деле не перестраивал.
Решение: закройте Visual Studio, действительно идите и удалите папку bin, а затем перестройте ее, это может работать лучше.
Кроме того, иногда Visual Studio лжет о ссылках, поэтому проверьте
HintPath
в своих.csproj
файлах.источник
Если вы используете NuGet, стоит перейти к «Управление пакетами NuGet для решения». , найти пакет, вызывающий проблемы, и выполнить обновление. Затем он должен обновить все пакеты до последней версии и решить проблему.
Стоит попробовать, так как это быстро и легко.
источник
csproj
редактирования!Моя проблема заключалась в том, что у меня было 2 проекта, ссылающихся на 2 разные копии одной и той же dll, которые имели разные версии. Я исправил это, удалив их обоих и убедившись, что они ссылаются на один и тот же файл dll.
источник
Одна из возможных причин заключается в том, что вторая сборка установлена в GAC, а первая сборка с более высоким номером версии добавляется в список ссылок проекта. Чтобы проверить это, дважды щелкните сборку в ссылках на проект и проверьте, есть ли другая сборка с тем же именем в обозревателе объектов.
В этом случае используйте утилиту gacutil.exe для удаления второй сборки из GAC. Например, если это 64-битные сборки:
источник
Перейдите к ссылке и добавьте новую ссылку на ваш файл DLL, который вызывает проблему, и убедитесь, что все ваши библиотеки DLL скомпилированы с использованием одной и той же версии. Это работает для меня, я надеюсь, что это работает и для вас.
источник
Моя команда только что столкнулась с этой проблемой в нашей среде сборки. Проблема возникла из-за разницы в элементе <HintPath> файла .csproj.
Наша общая сборка имела правильный относительный путь к каталогу, содержащему наши ссылочные сборки. Зависимая сборка имела путь из прежней структуры каталогов. Решение успешно скомпилировано на машинах разработчиков, поскольку GAC разрешил зависимую ссылку на правильную версию, установленную в C: \ Program Files. В среде сборки была устаревшая установка сборки (хотя ее не должно было быть), к которой она вернулась, и, следовательно, ошибка. Обновление <HintPath> в текстовом редакторе устранило проблему.
источник
Проблема возникает, если пакеты nuget различаются в нескольких проектах в рамках решения.
Вы можете исправить это, обновив пакеты nuget до общей версии со всеми ПРОЕКТАМИ в РЕШЕНИИ.
источник
Была аналогичная проблема. Моя проблема заключалась в том, что у меня было несколько проектов в одном решении, каждый из которых ссылался на определенную версию DLL, но разные версии. Решением было установить для параметра «Определенная версия» значение false во всех свойствах всех ссылок.
источник
Я знаю, что об этом спросили довольно давно, после того, как попробовали некоторые из вышеперечисленных шагов. Мне помогли следующие шаги и эта статья .
Я нашел ссылку и изменил PublicKeyToken с того, на который ссылаются, на более старый.
Надеюсь, это тоже поможет.
источник
У меня была такая же ошибка. Я исправил ошибку после установки
Microsoft.AspNetCore.ALL
в тестовый проект.источник
Папка коллекции Handmade библиотеки DLL
Если решение есть папка мусора для DLL-файлов из разных библиотек
lib
,source
,libs
и т.д.Вы можете получить эти неприятности , если вы будете открывать свое решение (на время) в елей Visual Studio. И папка для сбора вашей dll как-то отсутствует или отсутствует конкретный dll-файл.
Visual Studio попытается незаметно заменить ссылку на dll на что-то самостоятельно. Если VS завершится успешно, новая ссылка будет постоянной для вашего локального решения. Не для других клонов / касс.
Т.е. ваш
<HintPath>
проект будет проигнорирован, а ваш файл проекта (.csproj) не будет изменен.Как пример меня
DocumentFormat.OpenXml
Будет ссылаться изC:\Program Files (x86)\Open XML SDK\V2.5\lib
не изsolution\..\lib
папки.быстрое обходное решение
right Обходной путь - перейти на диспетчер пакетов NuGet.
источник
для SharePoint убедитесь, что в корневой папке у вас нет папки «bin» с вашими DLL, в таком случае просто удалите ее. (и измените "Copy Local" на false в VS).
источник
Ссылки в проекте веб-сайта хранятся в его файле web.config. Обновите ссылку там, чтобы исправить ошибку.
Я потратил некоторое время на просмотр всех ссылок в моем решении, прежде чем понял, что забыл о ссылках в файле web.config.
источник
У меня была такая же проблема с UnitTestingProject, где в MainProject я использовал «System.Web.Mvc, Version = 3.0.0.0», а в UnitTestingProject я использовал «System.Web.Mvc, Version = 3.0.0.1»
Измените следующее в
<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.AspNet.Mvc.3.0.50813.1\lib\net40\System.Web.Mvc.dll</HintPath> </Reference>
источник
Я получил это после добавления Episerver Find на наш сайт и установки соответствующего пакета NuGet для Episerver Find.
Исправить это было просто: обновите все надстройки, связанные с Episerver (даже если они кажутся не связанными: CMS, CMS.TinyMCE, CMS.UI и т. Д.)
После обновления всех возможных надстроек Episerver и перекомпиляции ошибка исчезла.
источник
В моем сценарии я редактировал файл .csproj для своего приложения dotnetCore. Я заметил, что тег TargetFramework имеет значение netcoreapp2.1, а тег RuntimeFrameworkVersion - значение 2.0.0 . Поэтому я изменил RuntimeFrameworkVersion на 2.1.0 , сохранил, перезапустил VS и перестроил, а затем ошибки.
Надеюсь, что это поможет вам ...
Удачи,
Сугешан
источник
В вашем проекте найдите ссылки System.Web.Mvc проверьте версию.
После этого щелкните правой кнопкой мыши по ссылкам -> сборки, найдите system.web.mvc и настройте его.
Проблема вызывает разные версии этих сборок .
Изменить: выберите управление пакетами NuGet и установите обновления (если у вас есть несколько проектов, установите обновления и для них).
Важное обновление - Microsoft.AspNet.Mvc и Microsoft.Net.Compilers , не забывайте об этом!
источник
В нашей команде мы работали на разных компьютерах с git. Кто-то обновил a,
dll
а у меня его не было. Я только что обновил ссылки на зависимости, и проблема решена.источник
У меня была аналогичная проблема, я создал DLL, то есть A.dll, которая ссылалась на другую DLL, то есть на B.dll.
Я создал приложение C.exe и сослался на библиотеки DLL A.dll и B.dll.
Решение. Удалив ссылку на B.dll из c.exe, я решил проблему.
Надеюсь это поможет.
источник