Ошибка CS1705: «версия выше указанной сборки» - PullRequest
83 голосов
/ 10 февраля 2012

Я уже немного разбираюсь в этом и не получил решения. Я получаю следующее сообщение об ошибке:

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 теперь есть в списке.

Что еще я могу посмотреть, чтобы решить эту проблему? Я не хочу менять ссылку в моей сборке, чтобы она указывала на более старую версию.

Ответы [ 17 ]

0 голосов
/ 19 мая 2018

В нашей команде мы работали на разных компьютерах с git. Кто-то обновил dll, а у меня его не было. Я только что обновил ссылки на зависимости и проблема решена.

0 голосов
/ 13 июня 2018

Ссылки в проекте веб-сайта хранятся в его файле web.config.Обновите там ссылку, чтобы исправить ошибку.

Я потратил некоторое время на просмотр всех ссылок в своем решении, прежде чем понял, что забыл о ссылках в файле web.config.

0 голосов
/ 28 августа 2017

для SharePoint, убедитесь, что в вашей корневой папке нет папки «bin» с вашими DLL, если это так, просто удалите ее. (и измените «Копировать локальный» на false в VS).

0 голосов
/ 02 февраля 2017

Папка коллекции ручной работы dll Если в вашем решении есть мусорная папка для dll-файлов из разных библиотекlib, source, libs и т. Д.Вы можете получить эту проблему, если откроете свое решение (на первый раз) в Visual Studio.И папка сбора вашей dll почему-то пропущена, или пропущен конкретный dll-файл.

Visual Studio будет пытаться молча заменить ссылку на dll чем-то самостоятельно.Если VS преуспеет, то для вашего локального решения будет сохранена новая ссылка.Не для других клонов / проверок.

Т.е. ваш <HintPath> будет проигнорирован, а ваш файл проекта (.csproj) не будет изменен.В качестве примера я

<Reference Include="DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\lib\DocumentFormat.OpenXml.dll</HintPath>
</Reference>

На DocumentFormat.OpenXml будут ссылаться из C:\Program Files (x86)\Open XML SDK\V2.5\lib, а не из папки solution\..\lib.

быстрый обходной путь

  • проверьте и восстановите папку сбора вашей dll
  • из Solution Explorer и выполните Выгрузите проект , затем Перезагрузите проект .

right Обходной путь - перейти на менеджер пакетов NuGet.

0 голосов
/ 29 февраля 2016

В вашем проекте найдите ссылки System.Web.Mvc проверьте версию.

После этого щелкните правой кнопкой мыши ссылки -> сборки и выполните поиск system.web.mvc.и настройка это.

Проблема связана с различными версиями этих сборок .

Редактировать: выберите управление пакетами NuGet и установите обновления (если у вас есть несколько проектов, установите для них обновления).

Важное обновление Microsoft.AspNet.Mvc и Microsoft.Net.Compilers не забывайте это!

0 голосов
/ 18 мая 2015

Я знаю, что об этом спрашивали довольно давно, после того, как попробовали некоторые из вышеперечисленных шагов. Мне помогли следующие шаги и эта статья .

Я нашел ссылку и изменил PublicKeyToken с того, на который ссылается старый.

Надеюсь, это тоже поможет.

0 голосов
/ 12 сентября 2013

У меня была похожая проблема, я создал DLL, т.е. A.dll, которая ссылалась на другую DLL, т.е. B.dll.

Я создал приложение C.exe и ссылался на библиотеки DLL A.dll и B.dll.

Решение - После удаления ссылки на B.dll из c.exe я смог решить проблему.

Надеюсь, это поможет.

...