错误SQL0:对名为' MyDatabase.dacpac'的源的外部元素的引用无法解决,因为没有加载此类来源

时间:2017-12-15 17:27:01

标签: sql-server dac sqlpackage

我在使用sqlpackage.exe或DacFx DLL时以编程方式发布由其他团队编译和提供的dacpac(A)时出现此错误,而该团队又依赖于另一个dacpac(B) )。

我可以确认:

  • A对B的引用有"抑制参考警告"为真
  • B .dacpac文件与A .dacpac文件位于同一文件夹中
  • 我尝试过2个不同版本的Microsoft.SqlServer.Dac.dll,12.0.2882.1和14.0.3881.1
  • 两个dacpac都有针对SQL Server 2012的设置,我正在尝试发布到SQL Server 2012
  • 我已经尝试将IncludeCompositeObjects部署选项设置为true,并尝试设置为false

我做错了什么?如何发布已经编译并提供给我的dacpac,它有一个数据库引用,引用的路径对我无效?

1 个答案:

答案 0 :(得分:0)

当您在Visual Studio的两个版本之间切换时,可能会发生这种情况。在我的场景中,我最初使用VS2017 Professional Edition构建了一个数据库项目。当我切换到VS2017企业版时,在构建时收到一堆The reference to external elements from the source named 'master.dacpac' could not be resolved, because no such source is loaded.错误(在先在Enterprise中构建然后切换到Professional时也会发生)。

我解决了以下问题:

  • 关闭Visual Studio;
  • 删除项目根文件夹中的*.dbmdl*.jfm*.user文件;
  • 重新打开Visual Studio并重新构建。