托管VS2017代理构建master.dacpac不存在

mhe*_*all 24 sql-server-data-tools azure-pipelines visual-studio-2017

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

2017-07-14T12:44:17.8387743Z ## [错误] C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools. Schema.SqlTask​​s.targets(559,5):错误SQL72027:文件"C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\SQLDB\Extensions\SqlServer\110\SqlSchemas\master.dacpac"不存在.2017-07-14T12:44:17.8397816ZC:\ Program Files(x86)\ Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTask​​s.targets( 559,5):生成错误SQL72027:文件"C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\SQLDB\Extensions\SqlServer\110\SqlSchemas\master.dacpac"不存在.[d:\一个\ 3\S \主\ ItAsset.Database\ItAsset.Database.sqlproj]

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

Lar*_*ith 49

在多开发人员的情况下,我对此感到满意.这似乎发生在VS2017 SSDT项目中,签入代码的开发人员最初将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>
Run Code Online (Sandbox Code Playgroud)

注意:这<HintPath>是正确的,但它Include="是一个硬编码路径.似乎没有像通常那样遵循提示路径.若要解决此问题,请尝试将HintPath元素的内容复制到Include属性.保持HintPath不变.

<ArtifactReference Include="$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\130\SqlSchemas\master.dacpac">
Run Code Online (Sandbox Code Playgroud)


Jas*_*off 16

这是针对Visual Studio 2017的SSDT中的错误.

解决方法是手动编辑项目文件,用$(DacPacRootPath)变量替换完整路径.或者,您可以将SSDT用于Visual Studio 2015.

该错误已在Microsoft Connect站点上报告过两次:https: //connect.microsoft.com/SQLServer/Feedback/Details/3141348

并且,在这里:https: //connect.microsoft.com/SQLServer/Feedback/Details/3133716

请注意,Connect站点已停用.请在此处在UserVoice上投票支持此问题:

https://feedback.azure.com/forums/908035-sql-server/suggestions/32897047-visual-studio-2017-ssdt-adds-hardcoded-master-dacp#comments

  • 而不是复制文件,我同意这是破碎的,需要修复. (2认同)