"Не хватает ссылки на сборку?" ошибка компиляции - Visual Studio - PullRequest
24 голосов
/ 16 января 2009

В настоящее время я работаю над серверным элементом управления для других приложений нашей компании для взаимодействия со службой WCF. Каждый раз, когда я изменяю код изменения и перекомпилирую элемент управления, я увеличиваю класс AssemblyVerison и AssemblyFileVersion в AsseemblyInfo.cs на единицу. Например, моя последняя сборка была изменена с 1.0.07.0 до 1.0.08.0.

Когда приложение-потребитель обновляет файл, копируя последний файл в каталог bin и пытается скомпилировать, они получают следующую ошибку:

Тип или имя пространства имен 'MyControl' не существует в пространстве имен «MyNamespace» (вам не хватает ссылка на сборку?)

Чтобы устранить эту ошибку, они должны удалить текущую ссылку и заново добавить ссылку.

Есть ли способ обновить серверный элемент управления без необходимости удалять и повторно добавлять ссылку?

Я не сильно назвал серверный элемент управления.
@JPunyon - Вы имеете в виду, что приложение-потребитель добавляет проект управления сервером в свое решение?

Ответы [ 7 ]

29 голосов
/ 15 июля 2014

В моем случае это был проект, определенный с помощью Target Framework: «Профиль клиента .NET Framework 4.0», который пытался ссылаться на проекты DLL, определенные с помощью Target Framework: «.NET Framework 4.0».

После того, как я изменил настройки проекта для использования Target Framework: «.NET Framework 4.0» все было прекрасно создано.

Щелкните правой кнопкой мыши проект-> Свойства-> Приложение-> Target Framework

17 голосов
/ 16 января 2009

Щелкните правой кнопкой мыши ссылку на сборку в обозревателе решений, свойства, отключите параметр «Определенная версия».

2 голосов
/ 16 января 2009

Сильно ли вы называете свои сборки? В этом случае не рекомендуется автоматически увеличивать ваш номер сборки, потому что с каждым новым номером сборки вам также придется обновлять все ваши ссылки.

1 голос
/ 13 декабря 2011

Я наткнулся на ответ, который указал мне правильное направление, но ...

Для тех, кто использует Visual C ++:

Если вам нужно отключить автоинкремент версии, вы можете изменить это значение в файле «AssemblyInfo.cpp» (он есть у всех проектов CLR). Дайте ему реальный номер версии без звездочки, и он будет работать так, как вы хотите.

Только не забудьте реализовать свой собственный контроль версий в вашей сборке!

0 голосов
/ 28 марта 2019

Я столкнулся с этой ошибкой в ​​конвейере сборки Azure DevOps Services (на хосте MS) в репозитории TFVC.

В моем случае я работал в ветке и случайно добавил ссылку из папки с пакетом в транк вместо ветки. Как только я добавил ссылку из ветки, она начала успешно компилироваться.

Т.е. при работе с \ branch-beta \ sierra.csproj я случайно упомянул \ trunk \ packages \ delta.dll. Очевидно, что вместо этого мне нужно было ссылаться на \ branch-beta \ packages \ delta.dll. Перепутывание произошло из-за того, что путь не отображается в окне Добавить ссылку , и я недостаточно тщательно проверил.

0 голосов
/ 21 апреля 2018

При создании нового проекта Blank UWP в сообществе Visual Studio 2017 появилась эта ошибка.

enter image description here

После предложенного решения (восстановление кеша NuGet) ссылка снова появилась в Проекте.

0 голосов
/ 17 августа 2016

В моем случае мне пришлось изменить значение параметра «Локальное копирование» на true (сборка правой кнопкой мыши в обозревателе решений, выберите свойства, найдите и измените значение свойства «Копировать локальное»). Как только этот параметр был изменен, публикация моей службы WCF скопировала файл на сервер, и ошибка исчезла.

...