C# 对SQL数据库项目(SQLCLR)的引用抛出;找不到类型或命名空间";错误
我花了1.5天的时间在谷歌上搜索这个问题的解决方案,但毫无结果 在另一个项目中,我无法从代码中引用已编译的SQLCLR程序集。我可以将引用添加到另一个项目,但当我尝试添加“using”指令以在代码中包含引用的组件时,我收到一个“找不到类型或命名空间名称'Database1'(是否缺少using指令或程序集引用?)” 以下是我所做的:C# 对SQL数据库项目(SQLCLR)的引用抛出;找不到类型或命名空间";错误,c#,visual-studio-2013,.net-assembly,sqlclr,database-project,C#,Visual Studio 2013,.net Assembly,Sqlclr,Database Project,我花了1.5天的时间在谷歌上搜索这个问题的解决方案,但毫无结果 在另一个项目中,我无法从代码中引用已编译的SQLCLR程序集。我可以将引用添加到另一个项目,但当我尝试添加“using”指令以在代码中包含引用的组件时,我收到一个“找不到类型或命名空间名称'Database1'(是否缺少using指令或程序集引用?)” 以下是我所做的: 使用VS 2012/2013,我创建了一个空白解决方案 添加了一个新的SQL Server数据库项目(Database1),目标是SQL Server 2012和.
有人知道为什么我可以添加对SQLCLR程序集的引用,但“客户端”项目代码似乎无法实际“查看”或访问引用的程序集吗?您的.net控制台项目无法引用SQLCLR项目中的.net程序集,因为发布时它将嵌入数据库中。它不会与DLL合并,但会依赖于Microsoft Sql Server LIB,并且通常会在相同的连接上下文下运行,而不是在定义的连接字符串下运行,以与数据库对话。这两个项目都可以引用第三个共享程序集,然后直接在数据库项目中添加SQLCLR.net代码,该数据库项目只需将共享代码作为包装调用即可。您确定名称空间正确吗?i、 例如,程序集可以命名为
Database1
,但名称空间可能类似于CompanyName.Database1
或类似的名称?using
指令使用名称空间,项目引用使用程序集名称。是。因为这只是一个“测试”解决方案,所以名称空间和程序集名称是相同的(Database1)。谢谢。对不起,但那不是真的。我可以添加对另一个SQLCLR程序集的引用,并且可以通过using指令访问名称空间。我尝试过创建具有相同属性的Database1程序集(甚至使用/strong键文件名签名),但无法在“客户端”应用程序中访问它。似乎我遗漏了一些东西,或者在我安装VS 2013时引入了异常情况。在任何情况下,我知道我试图做的是可行的,或者至少以前做过。谢谢
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)
{
}
}
}