【发布时间】:2020-12-29 04:45:04
【问题描述】:
我目前正在创建一个包含 40 多个项目和大量参考资料的大型数据库解决方案。
很常见的情况是项目A引用项目B,然后项目B引用项目C,以此类推:
A->B->C->D
当我尝试构建项目 D 时,一切正常。项目 C 也是如此,它解析了对 D 的引用并成功构建。
当我尝试构建项目 B 时,我收到如下错误:
无法解析来自名为 D.dacpac' 的源对外部元素的引用,因为没有加载此类源。
我确定所有参考都已设置,并且没有遗漏任何内容。我的 dacpacs 为每个项目存储在 bin/Debug 文件夹中。
请就如何继续我的调查提供一些提示或想法。
【问题讨论】:
-
你不能在不使用变量的情况下在 SSDT 中使用 3/4 部分命名。在此处查看我的评论如何组织项目:stackoverflow.com/questions/56289174/sql-deployment-automation/…。您也可以在我的 git repo 中查看示例解决方案:github.com/dkultasev/SSDTPowerTemplate
-
@DmitrijKultasev,我已经在使用变量作为数据库名称
-
项目 B 也应该包括对 D 的引用
-
@DmitrijKultasev 谢谢!您能否更详细地解释为什么我需要添加那些“传递引用”,或者分享一些链接?我以为 Visual Studio 会自动拾取它们。
-
不幸的是,像 SSDT 这样出色的工具的文档很少。我可以尝试解释一下我是如何理解的:当您引用 db C 时,它具有来自 D 的对象,而 SSDT 也在尝试为它们获取元数据,以便能够正确验证所有内容。此外,您可以尝试在为项目 C 添加引用时勾选“抑制被引用项目中未解决的引用导致的错误”。这也可能有效。
标签: sql sql-server sql-server-data-tools database-project