对SQL数据库项目(SQLCLR)的引用抛出“无法找到类型或名称空间”.错误

本文关键字:类型 错误 空间 项目 数据库 SQL SQLCLR 引用 | 更新日期: 2023-09-27 18:04:02

我花了整整一天半的时间在谷歌上寻找这个问题的解决方案,但是毫无效果。

我无法从另一个项目的代码中引用已编译的SQLCLR程序集。我可以将引用添加到其他项目,但是当我尝试添加"使用"指令以在代码中包含引用的组件时,我收到"无法找到类型或名称空间名称'Database1'(您是否缺少使用指令或程序集引用?)"

这是我所做的:

    使用VS 2012/2013我创建了一个空白的解决方案。
  1. 添加了一个新的SQL Server数据库项目(Database1),目标是SQL Server 2012和。net 4.5框架(不是客户端配置文件)。
  2. 为解决方案添加了一个新的命令行/winform/web app/任何项目(TestConsoleApplication1),也针对。net 4.5框架(不是客户端配置文件)。
  3. 添加了对Database1程序集的引用(也尝试了项目引用)和系统的引用。数据组装到TestConsoleApplication1项目。
  4. 为系统添加了using指令。数据组装到默认类,当我创建TestConsoleApplication1项目时自动添加。
  5. 试图将Database1程序集的using指令添加到默认类中,当我创建TestConsoleApplication1项目时自动添加。
  6. 当尝试为Database1程序集添加using指令时,程序集名称没有出现在智能感知中,输入程序集名称导致Database1下出现"红色潦乱"。
  7. 试图构建项目,结果是"无法找到类型或名称空间名称'Database1'(您是否缺少using指令或程序集引用?)"错误。
  8. 检查,双,三,四…n-tuple检查了两个项目目标相同的。net框架版本(4.5)。

Database1没有代码,下面是"客户端"应用程序(TestConsoleApplication1)的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Database1; //Marked as design-time error, and throws ERROR on build
namespace TestConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

        }
    }
}

有没有人知道为什么我可以添加对SQLCLR程序集的引用,但"客户端"项目代码似乎无法实际"看到"也无法访问引用的程序集?

对SQL数据库项目(SQLCLR)的引用抛出“无法找到类型或名称空间”.错误

.net控制台项目不能引用SQLCLR项目中的.net程序集,因为它将在发布时嵌入到数据库中。它确实组合成一个DLL,但将依赖于Microsoft Sql Server库,通常会在相同的连接上下文中运行,而不是一个定义的连接字符串来与数据库对话。两个项目都可以引用第三个共享程序集,然后直接在数据库项目中添加SQLCLR .net代码,该数据库项目只需将共享代码作为包装器调用。