对SQL数据库项目(SQLCLR)的引用抛出“无法找到类型或名称空间”.错误
本文关键字:类型 错误 空间 项目 数据库 SQL SQLCLR 引用 | 更新日期: 2023-09-27 18:04:02
我花了整整一天半的时间在谷歌上寻找这个问题的解决方案,但是毫无效果。
我无法从另一个项目的代码中引用已编译的SQLCLR程序集。我可以将引用添加到其他项目,但是当我尝试添加"使用"指令以在代码中包含引用的组件时,我收到"无法找到类型或名称空间名称'Database1'(您是否缺少使用指令或程序集引用?)"
这是我所做的:
- 使用VS 2012/2013我创建了一个空白的解决方案。
- 添加了一个新的SQL Server数据库项目(Database1),目标是SQL Server 2012和。net 4.5框架(不是客户端配置文件)。
- 为解决方案添加了一个新的命令行/winform/web app/任何项目(TestConsoleApplication1),也针对。net 4.5框架(不是客户端配置文件)。
- 添加了对Database1程序集的引用(也尝试了项目引用)和系统的引用。数据组装到TestConsoleApplication1项目。
- 为系统添加了using指令。数据组装到默认类,当我创建TestConsoleApplication1项目时自动添加。
- 试图将Database1程序集的using指令添加到默认类中,当我创建TestConsoleApplication1项目时自动添加。
- 当尝试为Database1程序集添加using指令时,程序集名称没有出现在智能感知中,输入程序集名称导致Database1下出现"红色潦乱"。
- 试图构建项目,结果是"无法找到类型或名称空间名称'Database1'(您是否缺少using指令或程序集引用?)"错误。
- 检查,双,三,四…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程序集的引用,但"客户端"项目代码似乎无法实际"看到"也无法访问引用的程序集?
.net控制台项目不能引用SQLCLR项目中的.net程序集,因为它将在发布时嵌入到数据库中。它确实组合成一个DLL,但将依赖于Microsoft Sql Server库,通常会在相同的连接上下文中运行,而不是一个定义的连接字符串来与数据库对话。两个项目都可以引用第三个共享程序集,然后直接在数据库项目中添加SQLCLR .net代码,该数据库项目只需将共享代码作为包装器调用。