23

我已经在 TFS Build 中设置了我的.NET项目。它在本地构建良好,但我在服务器上收到此构建错误:

未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\SSDT\Microsoft.Data.Tools.Schema.SqlTask​​s.targets”。确认 <Import> 声明中的路径正确,并且该文件存在于磁盘上。

我不知道它是什么,即使谷歌搜索也没有多大帮助。我的解决方案有一些数据库项目。这里有什么问题,我该如何解决?

4

4 回答 4

21

您需要在所有构建代理上安装SQL Server Data Tools。在安装 TFS 构建服务器时,人们通常会在该机器或其他机器上创建代理。

您可以从MS SQL Server Data Tools 博客Microsoft SQL Server Data Tools下载它们,然后选择与您所做的构建相对应的一个(Visual Studio 2010 或 Visual Studio 2012)。

注意:在某些情况下,错误会提到路径:
c:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets
在这种情况下,请从 SQL 安装中安装 SQL Server Data Tools,而不是上面的链接。

于 2012-11-03T01:34:58.780 回答
3

我通过添加不构建 SQLPROJ 的新解决方案配置解决了类似的问题。然后,我配置了 CI-CD(Azure DevOps Pipelines)来构建该配置。在构建的后续步骤中,我专门构建和打包 SQLPROJ。通过这个我避免了两个解决方案 - 其中一个只会在项目中使用;SQL 项目。

Visual Studio 配置管理器 - 具有新的活动配置,不包括 DB SQLPROJ 项目的构建

于 2019-05-22T01:54:16.757 回答
0

很长一段时间以来,我们已经使用ReadyRoll.MSBuild NuGet 包。ReadyRoll 不再是 ReadyRoll 的事件,它仍在定期更新并与最新的 SCA 插件一起工作。它包含相同的构建扩展,并且可以在我们的构建代理上完美运行,无需安装任何东西。最大的问题是 .sqlproj 文件中没有 nuget 支持,这使得添加/更新包有点棘手:https ://documentation.red-gate.com/rr1/installing/build-components

SQL 变更自动化文档不包含此部分,因此很难确定它会保持多长时间。

为了完整起见,从今天开始添加到您的 .sqlproj 的属性:

<ReadyRollNuGetBaseFolder>$(MSBuildThisFileDirectory)..\packages</ReadyRollNuGetBaseFolder>
<ReadyRollNuGetIsRestored Condition="$([System.IO.Directory]::GetDirectories($(ReadyRollNuGetBaseFolder), 'ReadyRoll.MSBuild.*').Length) != 0">True</ReadyRollNuGetIsRestored>
<SqlChangeAutomationTargetsPath Condition="$(ReadyRollNuGetIsRestored) == 'True'">$([System.IO.Directory]::GetDirectories($(ReadyRollNuGetBaseFolder), 'ReadyRoll.MSBuild.*')[0])\tools\ReadyRoll.Data.Schema.SSDT.targets</SqlChangeAutomationTargetsPath>
于 2021-09-07T11:06:25.497 回答
0

如果 Azure DevOps 管道构建代理出现此问题,请在管道 YML 任务中使用 MSBuild@1 而不是 DotNetCoreCLI@2。它对我有用。

- task: MSBuild@1
  displayName: 'Build SQL solution'
  inputs:
    solution: <SQL DB Solution>.sln
    msbuildArchitecture: x64
    msbuildArguments: '/property:DSP="Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider"'
    configuration: 'release'
于 2021-09-27T16:46:38.440 回答