Размещенный мастер сборки агента VS2017.dacpac-файл не существует
мое решение, созданное с помощью VS2017 Professional, содержит проект базы данных SQL Server, который ссылается на Главную базу данных. При использовании размещенного агента VS2017 для создания моего решения в Visual Studio Team Services я получаю следующие ошибки:
2017-07-14T12: 44: 17.8387743 Z ##[ошибка]C:Program файлы (x86)Microsoft Визуальный Студия2017предприятияв MSBuildМайкрософтVisualStudioпрограммы V15.0средыМайкрософт.Данные.Инструменты.Схема.SqlTasks.целевые показатели(559,5): Ошибка SQL72027: Файл "C:Program файлы (x86)Microsoft Visual Studio2017ProfessionalCommon7IDEExtensionsMicrosoftSQLDBExtensionsSqlServer110SqlSchemasmaster.файл dacpac" не существует. 2017-07-14T12:44:17.8397816 Z C:Program файлы (x86)Microsoft Visual Студия2017предприятияв MSBuildМайкрософтVisualStudioпрограммы V15.0средыМайкрософт.Данные.Инструменты.Схема.SqlTasks.целевые показатели(559,5): Ошибка сборки SQL72027: файл "C:Program файлы (x86)Microsoft Visual Studio2017ProfessionalCommon7IDEExtensionsMicrosoftSQLDBExtensionsSqlServer110SqlSchemasmaster.файл dacpac" не существует. [d:a3sMainItAsset.База ДанныхItAsset.База данных.sqlproj]
Как я могу исправить это и получить мое решение для сборки в VSTS?
3 ответов
Он использует абсолютный путь,который не существует в размещенном агенте VS2017. (профессиональный vs предприятия). Вы можете проверить файл проекта (открыть файл sqlproj через nodepad)
вы можете скопировать master.dacpac-файл в папку проекта и включить его в проект, а затем добавить ссылку на этот файл.
Я только что получил бит в ситуации с несколькими разработчиками. Кажется, это происходит в проектах VS2017 SSDT, где разработчик, который проверил код, первоначально установил Visual Studio по другому пути, чем вы, или другой экземпляр Visual Studio. Например, если разработчик A установлен по умолчанию на C:\ но разработчик B установил свой VS2017 на e:\ диск, тот, кто создает ссылку на Master, будет работать, другой не найдет файл dacpac.
просмотр в.файл sqlproj, вы, вероятно, найдете эту ссылку на Главную базу данных:
<ArtifactReference Include="C:\Program Files (x86)\Microsoft Visual Studio17\Community\Common7\IDE\Extensions\Microsoft\SQLDB\Extensions\SqlServer0\SqlSchemas\master.dacpac">
<HintPath>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer0\SqlSchemas\master.dacpac</HintPath>
Примечание:<HintPath>
- это правильно, но Include="
- это жестко закодированные пути. Кажется, что путь подсказки не соблюдается, как это обычно должно быть. Чтобы устранить проблему, попробуйте скопировать содержимое элемента HintPath в атрибут Include. Оставить HintPath как это.
<ArtifactReference Include="$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer0\SqlSchemas\master.dacpac">
Это ошибка в SSDT для Visual Studio 2017.
обходной путь состоит в том, чтобы вручную отредактировать файл(ы) проекта, заменив полный путь переменной $(DacPacRootPath). Или можно использовать SSDT для Visual Studio 2015.
ошибка была сообщена дважды на сайте Microsoft Connect: https://connect.microsoft.com/SQLServer/Feedback/Details/3141348
и, здесь: https://connect.microsoft.com/SQLServer/Feedback/Details/3133716
обратите внимание, что сайт Connect был выведен из эксплуатации. Пожалуйста, проголосуйте за этот вопрос на устройства здесь: