带有 dacpac 参考的 SSDT 未解析参考

Posted

技术标签:

【中文标题】带有 dacpac 参考的 SSDT 未解析参考【英文标题】:SSDT unresolved reference with dacpac references 【发布时间】:2015-08-05 16:38:16 【问题描述】:

我有一个 SSDT 项目,我最近从 SQL 2008 更改为 SQL 2012。我使用 SQL 2012 SqlPackage 重新导出了我的引用 DACPAC 文件,并用新的 2012 版本替换了 SQL 2008 DACPAC。现在我得到所有引用数据库的未解决的引用错误。

奇怪的是,IntelliSense 自动完成功能适用于 DACPAC 中的对象。我可以让所有表和列自动完成并显示它们的数据类型,即使是 SSDT 抱怨的对象。

迁移版本时 SSDT 是否存在已知问题?我有另一个使用这些 DACPAC 的项目,它的构建没有错误。

【问题讨论】:

您是否尝试过清理然后再次构建? 检查一次你的目标平台。 【参考方案1】:

我会做三件事,首先是仔细检查每个 dacpac 是在 2012 年 - 当我有一个混合项目时,这是一场噩梦,混合版本会导致各种参考问题。

其次,在 Visual Studio 中将每个 dacpacs 作为项目打开,并确保它们中的每一个都正确构建,它可能是其中一个对 master 等中某些内容的引用,导致后续构建失败。

最后对解决方案进行清理并仅构建 dacpac 项目,在输出窗口中查找任何消息或警告,答案会在那里但很难看到。

编辑

【讨论】:

DACPACS 是从在 SQL 2012 实例上设置了兼容级别 2012 的数据库中导出的。项目兼容也设置为 SQL 2012。 这些 DACPAC 没有项目。我可以导入现有的数据库并构建它;然而,它是一个供应商数据库,由于...嗯,出色的数据库设计实践,它肯定会失败。 大声笑,我去过那里(现在就在那里!) - 将供应商的东西放在单独的 dacpac 中,任何不编译删除或评论的东西 - 这会让你的生活更轻松我保证

以上是关于带有 dacpac 参考的 SSDT 未解析参考的主要内容,如果未能解决你的问题,请参考以下文章

发布 dacpac(SSDT 数据库项目)时为数据库配置初始大小和自动增长大小的默认值

SSDT 很长时间加载项目和未解决的参考

SQL命令未返回任何列信息。 SSDT

数据库项目 - 输出 dacpac

找不到文件 dacpac?

在发布期间忽略 Dacpac 快照选项