Подтвердить что ты не робот

"Вам не хватает ссылки на сборку?" ошибка компиляции - Visual Studio

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

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

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

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

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

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

4b9b3361

Ответ 1

Щелкните правой кнопкой мыши ссылку на сборку в проводнике решений, свойствах, отключите опцию "Специфическая версия".

Ответ 2

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

Как только я изменил параметры проекта, чтобы использовать Target Framework: ".NET Framework 4.0", все было прекрасно построено.

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

Ответ 3

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

Ответ 4

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

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

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

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

Ответ 5

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

Ответ 6

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

enter image description here

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

Ответ 7

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

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

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