Проект TeamCity SQL: Microsoft.Data.Tools.Schema.SqlTasks.targets не найден - PullRequest
0 голосов
/ 28 сентября 2019

TeamCity

У меня есть проект TeamCity с .NET CLI (dotnet) build step для Visual Studio Solution ( .sln ).

Решение включает в себя SQL Project ( .sqlproj ).

Запуск этой сборкишаг дает ошибку:

[build] D:\TeamCity\buildAgent\work\e9ff385151b10e4c\Services\AccountCharacteristics\Database-RoundHouse-Deploy1\Database\Database.sqlproj(67,3): error MSB4019: The imported project "C:\Program Files\dotnet\sdk\2.2.101\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

Database.sqlproj

  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
    <!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
    <SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
    <VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
  </PropertyGroup>

  <Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
  <Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />

Так что получается, что SQLDBExtensionsRefPath = C:\Program Files\dotnet\sdk\2.2.101\Microsoft\VisualStudio\v11.0\SSDT\

Очевидно, .sqlproj по умолчанию 11,0 - оченьстарая версия Visual Studio.

Как установить SQLDBExtensionsRefPath?Как я могу установить / настроить агент для правильного пути?

Мой агент имеет:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VisualStudio\v16.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets

Также я заметил, что выпущен пакет NuGet:

https://www.nuget.org/packages/Microsoft.Data.Tools.Msbuild/

Но не понятно, как его использовать.Кажется очевидным, что мне нужно сослаться на пакет в VS .csproj.Но тогда как обеспечить, чтобы Visual Studio и Team City указывали на Microsoft.Data.Tools.Schema.SqlTasks.targets в пакете (в папке packages)?

...