visual-studio-2017 - 托管 VS2017 代理构建 master.dacpac 不存在

标签 visual-studio-2017 sql-server-data-tools azure-pipelines

我使用 VS2017 Professional 创建的解决方案包含一个引用 master 数据库的 SQL Server 数据库项目。当使用托管 VS2017 代理在 Visual Studio Team Services 中构建我的解决方案时,我收到以下错误:

2017-07-14T12:44:17.8387743Z ##[error]C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(559,5): Error SQL72027: File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\SQLDB\Extensions\SqlServer\110\SqlSchemas\master.dacpac" does not exist. 2017-07-14T12:44:17.8397816Z C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(559,5): Build error SQL72027: File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\SQLDB\Extensions\SqlServer\110\SqlSchemas\master.dacpac" does not exist. [d:\a\3\s\Main\ItAsset.Database\ItAsset.Database.sqlproj]



我该如何解决这个问题并让我的解决方案在 VSTS 中构建?

最佳答案

我只是在多开发人员的情况下被这个问题所困扰。这似乎发生在 VS2017 SSDT 项目中,其中 checkin 代码的开发人员最初在与您或 Visual Studio 的另一个实例不同的路径中安装了 Visual Studio。比如开发者A默认安装在C:\,开发者B把VS2017安装到E:\驱动,谁创建了Master的引用就行,谁就找不到dacpac文件。

查看 .sqlproj 文件,您可能会发现此对 Master 数据库的引用:

 <ArtifactReference Include="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\SQLDB\Extensions\SqlServer\130\SqlSchemas\master.dacpac">
  <HintPath>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\130\SqlSchemas\master.dacpac</HintPath>

注:<HintPath>是正确的,但 Include="是硬编码路径。似乎没有像通常那样遵循提示路径。要解决您的问题,请尝试将 HintPath 元素的内容复制到 Include 属性。保持 HintPath 不变。
<ArtifactReference Include="$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\130\SqlSchemas\master.dacpac">

关于visual-studio-2017 - 托管 VS2017 代理构建 master.dacpac 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45103775/

相关文章:

azure-devops - Azure DevOps 无法从其自己的存储库下载工件

asp.net - 通过构建管道将 ASP.NET 应用程序部署到 Azure 应用服务

docker - 使用VS2017发布到容器注册表,如何设置标签或图像名称?

c# - 跳过 xUnit 测试

sql-server - vs2015 SSD : publish could not drop table from db (deleted from package)

ssas - 指定特定外键字段作为 SSAS 数据源中两个表之间的链接

c - 如何让VS2017忽略特定编译器的关键字?

c++ - 使用公共(public) PRNG 和统一分布 (C++17)

sql-server - SQL Server 网页版 SSIS

c# - 在 Azure Pipeline 和 Linux 上构建 .Net Framework