#sql #sql-server #sql-server-data-tools
#sql #sql-сервер #sql-сервер-данные-инструменты
Вопрос:
В огромном решении для баз данных SSDT с множеством проектов и ссылок я добавляю ссылку из моего проекта в системные базы данных (master, msdb), она работает хорошо, и сборка прошла успешно.
И через некоторое время я начинаю получать ошибки о неправильной ссылке. Я перехожу в раздел ссылок и вижу это:https://pasteboard.co/JqzDSDh.png
Я попытался удалить вторую ссылку, и ошибки исчезли, но затем эта проблема возвращается, и я снова вижу две идентичные ссылки.
Спасибо!
Комментарии:
1. Пожалуйста, отредактируйте свой вопрос и добавьте встроенное изображение, а не добавляйте ссылку.
Ответ №1:
Скорее всего, что-то не так с вашим project.sqlproj
файлом. Попробуйте выполнить поиск по master.dacpac
ключевому слову там и убедитесь, что там нет нескольких записей. Убедитесь, что путь dacpac не полностью жестко запрограммирован, но использует $(DacPacRootPath)
переменную там.
Это пример того, как должна выглядеть ссылка (убедитесь, что в пути указана правильная версия SQL. Мой здесь 140).
<ArtifactReference Include="$(DacPacRootPath)ExtensionsMicrosoftSQLDBExtensionsSqlServer140SqlSchemasmaster.dacpac">
<HintPath>$(DacPacRootPath)ExtensionsMicrosoftSQLDBExtensionsSqlServer140SqlSchemasmaster.dacpac</HintPath>
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
</ArtifactReference>
Если это не помогло, попробуйте запустить «Чистое решение», затем удалите все *.jfm
файлы и *.dbmdl
-ов, bin
и obj
-ОВ папки и заново создайте проект.
Комментарии:
1. Спасибо! Нужно ли мне где-либо устанавливать значение для $(DacPacRootPath)? Я считаю, что изменение XML-файла — это единственный способ получить этот путь с переменной внутри, верно?
2. Это встроенная переменная, вам не нужно ее где-либо устанавливать