Visual Studio 2013 视图对对象有未解析的引用
Posted
技术标签:
【中文标题】Visual Studio 2013 视图对对象有未解析的引用【英文标题】:Visual Studio 2013 View has an unresolved reference to object 【发布时间】:2014-04-22 14:41:51 【问题描述】:我想在解决方案中添加一个数据库项目,但数据库引用到其他数据库,我不想包含在解决方案中。
Visual Studio 收集到 84 个错误。
我认为,最简单的解决方案是忽略此数据库项目的构建错误和警告,但我没有找到解决方案。
如果我用很多数据库开发了很多应用程序,数据库项目是没用的吗?
我现在能做什么?
【问题讨论】:
为什么在一个数据库中有对另一个数据库的引用但不希望它们出现在解决方案中? 我已经回答了这个问题,请阅读下文。 @Kyle-Hale 可能引用的数据库已经存在,他们没有选择使用 SSDT 重新创建它。我怀疑这是真实(微软实验室之外)世界中最有可能的场景。 【参考方案1】:最简单的做法是从这些引用的数据库中提取一个 dacpac,并将它们作为数据库引用包含在内。默认情况下,您不会尝试构建/发布它们,但它们会让您继续。
我必须使用 SQLPackage.exe 来提取 dacpac,因为如果有很多依赖项,我不能总是通过 SSMS 或 VS 接口来提取。我在我的博客上写下了我的过程: http://schottsql.blogspot.com/2012/10/ssdt-external-database-references.html
【讨论】:
我尝试在 SQL Management Studio 中通过提取数据层应用程序命令创建 dacpac 文件,但它失败并显示一个错误窗口,其中包含与问题标题类似的大量错误消息:“查看对对象有未解决的引用”。您确定,除了通过数据库引用来引用每个数据库之外,没有其他选择吗?有很多引用数据库,引用它们可能需要几个小时...... :( 添加引用不会花费太长时间。将它们放在项目可以看到的地方(所有项目上方的相同文件夹或“共享”文件夹)并添加指向文件的数据库引用 - 相同的服务器,不同的数据库,不要使用“变量名”中的任何内容“ 部分。您可能需要从 SQLPackage 命令行创建它(有关如何执行此操作的示例,请参见上面的博客文章)。生成 dacpacs 需要几分钟,添加每个数据库引用需要一两分钟。【参考方案2】:我找到了在 Visual Studio 解决方案中简单地构建“引用”数据库项目的答案。该问题似乎与使用从一个数据库项目到另一个数据库项目的引用有关,并且引用的数据库项目已更改且最近未构建。 VS 似乎保留了基于“已构建”数据库项目而不是源的当前版本的内部引用。希望对您有所帮助。
【讨论】:
【参考方案3】:对我来说,答案是使用 References > Add Database Reference... 来引用其他数据库项目。
在数据库位置> 数据库变量 下,确保将其设为空白。您希望 Example usage: 部分看起来像您使用它的方式。
这将向项目添加一个带有 DatabaseVariableLiteralValue 而不是 DatabaseSqlCmdVariable 的引用。
这也可以使用 dacpac 或系统数据库(例如 master)来完成。
【讨论】:
以上是关于Visual Studio 2013 视图对对象有未解析的引用的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2013将不显示Winforms,错误“项目中已存在对组件的引用'系统'
SQL Server 数据库项目/无法在 Visual Studio 2013 中执行视图
[.net 面向对象程序设计深入]UML——在Visual Studio 2013/2015中设计UML类图