Ошибка 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 ]

41 голосов
/ 12 февраля 2013

(В дополнение к идеям Якуба)

У меня была эта ошибка, потому что «Перестройка» на самом деле не перестраивалась.
Закройте Visual Studio, действительно перейдите и удалите папку bin, затем перестройте, это можетработать лучше.

Кроме того, иногда Visual Studio лжет о ссылках, поэтому проверьте HintPath в ваших .csproj файлах.

34 голосов
/ 10 февраля 2012

3 идеи для вас:

  1. Убедитесь, что все ваши dll скомпилированы для одной и той же версии Common.
  2. Убедитесь, что в вашем решении есть ссылки на проекты в вашем решенииссылок на файлы.
  3. Используйте перенаправления привязки в вашем файле web.config.( Первоначально связанная версия на машине обратного хода )
31 голосов
/ 13 марта 2014

Если вы используете NuGet, стоит перейти к «Управление пакетами NuGet для решения» , найти пакет, вызывающий проблемы, и установить обновление.Затем следует обновить все пакеты до последней версии и устранить проблему.

Стоит попробовать, так как это быстро и просто.

26 голосов
/ 22 мая 2013

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

11 голосов
/ 09 октября 2013

Одной из возможных причин является то, что вторая сборка установлена ​​в GAC, а первая сборка с более высоким номером версии добавляется в Ссылки проекта.Чтобы проверить это, дважды щелкните сборку в ссылках проекта и проверьте, есть ли другая сборка с таким же именем в обозревателе объектов.

В этом случае используйте утилиту gacutil.exe, чтобы удалитьвторая сборка от GAC.Например, если это 64-битные сборки:

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\gacutil.exe -u <assembly_name>
2 голосов
/ 19 марта 2013

Перейдите по ссылке и добавьте новую ссылку на файл DLL, которая вызывает проблему, и убедитесь, что все ваши библиотеки DLL скомпилированы для одной и той же версии. Это работает для меня, я надеюсь, что это работает и для вас.

1 голос
/ 29 июля 2013

Моя команда только что столкнулась с этой проблемой в нашей среде сборки. Проблема была связана с различием в элементе файла .csproj.

Наша общая сборка имела правильный относительный путь к каталогу, содержащему наши справочные сборки. Зависимая сборка имеет путь из прежней структуры каталогов. Решение успешно скомпилировано на компьютерах разработчиков, поскольку GAC разрешил ссылку зависимой системы на правильную версию, установленную в C: \ Program Files. В среде сборки была установлена ​​устаревшая сборка (хотя она и не должна была быть), к которой она применялась, и, как следствие, ошибка. Обновление в текстовом редакторе исправило проблему.

1 голос
/ 04 февраля 2019

У меня была такая же ошибка.Я исправил ошибку после установки Microsoft.AspNetCore.ALL в тестовый проект.

0 голосов
/ 27 июля 2018

У меня была такая же проблема с 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>

0 голосов
/ 02 апреля 2014

Была похожая проблема. Моя проблема заключалась в том, что в одном решении было несколько проектов, каждый из которых ссылался на определенную версию DLL, но на разные версии. Решение состояло в том, чтобы установить для «Определенной версии» значение false во всех свойствах всех ссылок.

...