我正在尝试在我们的 Windows Server 2016 服务器上设置 .sqlproj SSDT 项目的持续集成。
为此,我在服务器上安装了 VS2017 和 SSDT 工具以获得所需的工具。我还安装了 MS build tools 2017。
我目前遇到的问题是安装的 ms 构建工具和 ssdt 的版本似乎不匹配。
我用来运行构建的命令如下:
C:\\Windows\Microsoft.NET\\Framework64\\v4.0.30319\\MSBuild.exe /p:VisualStudioVersion=15.0 /property:MSBuildExtensionsPath="C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\MSBuild\\" /property:VsInstallRoot="C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\" DPAP-SQL-Slim.sln
传递的两个开关用于设置 .sqlproj 文件在通过 Visual Studio 运行时期望找到的两个环境参数。这样做是因为 MSBuild 默认情况下不提供它们。
我当前收到的错误如下:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(477,5): error MSB4062: The "SqlModelResolutionTask" task could not be loaded from the assembly C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\Common7\IDE\Extensions\Microsoft\SQLDB\Dac\140\Microsoft.Data.Tools.Schema.Tasks.Sql.dll. Could not load file or assembly 'Microsoft.Build.Utilities.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.
现在,我可以通过运行命令看到:gacutil /l
在 VS2017 命令提示符中,明显安装的版本Microsoft.Build.Utilities.Core
dll 是 v14:Microsoft.Build.Conversion.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
我在这里错过了一些关键的东西吗?看来安装构建工具 2017 实际上并未更新 GAC 并注册正确的 DLL。