4

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

我可以确认:

  • 从 A 对 B 的引用具有“禁止引用警告”为 True
  • B .dacpac 文件与 A .dacpac 文件位于同一文件夹中
  • 我尝试了 2 个不同版本的 Microsoft.SqlServer.Dac.dll,12.0.2882.1 和 14.0.3881.1
  • 两个 dacpacs 都有针对 SQL Server 2012 的设置,我正在尝试发布到 SQL Server 2012
  • 我已经尝试将IncludeCompositeObjects部署选项设置为 true 和 false

我究竟做错了什么?如何发布已编译并提供给我的 dacpac,其中包含一个对我无效的路径引用的数据库引用?

4

1 回答 1

2

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

我解决了这个问题:

  • 关闭 Visual Studio;
  • 删除项目根目录下的*.dbmdl,*.jfm*.user文件;
  • 重新打开 Visual Studio 并重新构建。
于 2019-03-07T12:49:56.903 回答