Visual studio 2012 tSQLt项目无法在Visual Studio 2012中生成

Visual studio 2012 tSQLt项目无法在Visual Studio 2012中生成,visual-studio-2012,tsqlt,Visual Studio 2012,Tsqlt,我有许多使用tSQLt的数据库项目,它们在VisualStudio2010中正确构建。当我在VisualStudio2012中打开它们时,我被告知IDE必须进行“功能更改”才能使用它们 一旦我完成了转换,所有数据库项目都无法成功构建。相反,tSQLt架构中的ever对象似乎引发了一个关于sys.objects的错误,如下所示: {Path}.Database.Messages\Schema Objects\Schemas\tSQLt\ Programmability\Functions\Priv

我有许多使用tSQLt的数据库项目,它们在VisualStudio2010中正确构建。当我在VisualStudio2012中打开它们时,我被告知IDE必须进行“功能更改”才能使用它们

一旦我完成了转换,所有数据库项目都无法成功构建。相反,tSQLt架构中的ever对象似乎引发了一个关于sys.objects的错误,如下所示:

{Path}.Database.Messages\Schema Objects\Schemas\tSQLt\
Programmability\Functions\Private_GetConstraintType.function.sql(6,10):
Error:  SQL71501: Function: [tSQLt].[Private_GetConstraintType] has an 
unresolved reference to object [sys].[objects].

转换似乎没有以任何方式更改命名脚本。发生什么事?(我该如何调查这样的问题。它相当神秘。)

tSQLt函数[tSQLt].[Private\u GetConstraintType]系统数据库中的sys.objects中进行选择

您需要在Visual Studio 2012(数据工具)中的数据库项目中添加对msdb(或master)数据库的数据库引用

要执行此操作,请转到解决方案->项目->参考->添加数据库参考(请参见下面的屏幕截图)

并添加对系统数据库的引用msdb。这应该会有所帮助


是的,我也是这样让它工作的。几个月前我也有同样的问题。我蒙混过关,最终解决了这个问题,但我本来可以接受你的答案的!:)我还必须在部署前脚本中添加“alterdatabase$(DatabaseName)settrustryon”。哦,我必须添加对master的引用,将数据库名设置为sys,而不是msdb