Visual studio 2010 在表中使用CLR UDT会在部署时提供“对Sql类型的未解析引用”

Visual studio 2010 在表中使用CLR UDT会在部署时提供“对Sql类型的未解析引用”,visual-studio-2010,sql-server-2008,sqlclr,user-defined-types,Visual Studio 2010,Sql Server 2008,Sqlclr,User Defined Types,我已经创建了一个用于SQLServer2008的CLR UDT,现在正试图从一个数据库项目中实际使用它 在VisualStudio中,CLR UDT项目和数据库项目都位于同一个解决方案中 在解决方案部署设置中都设置为部署 它们都在各自的项目设置中配置为部署到同一数据库 我已经添加了一个引用,并确认了从数据库项目到CLR UDT项目的结果依赖关系 不过,当我尝试“部署解决方案”时,它会构建(注意:不会在任何地方部署)SQL CLR项目,然后开始检查数据库项目的“验证项目模型”,并出现错误SQL

我已经创建了一个用于SQLServer2008的CLR UDT,现在正试图从一个数据库项目中实际使用它

  • 在VisualStudio中,CLR UDT项目和数据库项目都位于同一个解决方案中
  • 在解决方案部署设置中都设置为部署
  • 它们都在各自的项目设置中配置为部署到同一数据库
  • 我已经添加了一个引用,并确认了从数据库项目到CLR UDT项目的结果依赖关系
不过,当我尝试“部署解决方案”时,它会构建(注意:不会在任何地方部署)SQL CLR项目,然后开始检查数据库项目的“验证项目模型”,并出现
错误SQL03006:Column[schema].[table].[Column]对SQL类型[typeschema].[typename]的引用未解析.
在我使用CLR类型的数据库列上

我尝试进入工具->选项->数据库工具->模式比较->Microsoft SQL Server 2008,并在对象类型下将其设置为忽略
用户定义类型(CLR)
,但这没有任何明显的效果

如果我将CLR UDT项目部署到一个数据库中,请进入该数据库,并通过SQL Server Management Studio声明一个该类型的变量,该变量可以正常工作(如预期的那样)。因此,这显然与VisualStudio的模型有效性思想有关,而不是仅仅尝试(并按正确的顺序进行操作)就会产生部署结果的实际问题


谷歌显然无济于事。我遗漏了什么?

我找到了答案,当我意识到发生了什么事情时,答案非常简单,但在那之前还不太明显

所需的是向数据库项目中的项创建脚本添加
CREATE TYPE
命令
,以便SQL Server知道CLR UDT。VisualStudio在程序集部署上自动执行此操作,但显然在数据库项目模型验证期间不考虑它。


有了
CREATE TYPE
,一切似乎都按预期运行,不需要忽略任何错误。

我找到了答案,当我意识到发生了什么事情时,答案非常简单,但在此之前还不太明显

所需的是向数据库项目中的项创建脚本添加
CREATE TYPE
命令
,以便SQL Server知道CLR UDT。VisualStudio在程序集部署上自动执行此操作,但显然在数据库项目模型验证期间不考虑它。

有了
CREATE TYPE
,一切似乎都按预期工作,不需要错误忽略