C# 对SQL数据库项目(SQLCLR)的引用抛出;找不到类型或命名空间";错误

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和.

我花了1.5天的时间在谷歌上搜索这个问题的解决方案,但毫无结果

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

以下是我所做的:

  • 使用VS 2012/2013,我创建了一个空白解决方案
  • 添加了一个新的SQL Server数据库项目(Database1),目标是SQL Server 2012和.Net 4.5 Framework(而不是客户端配置文件)
  • 在解决方案中添加了一个新的命令行/winform/web app/which项目(TestConsoleApplication1),该项目也针对.Net 4.5框架(而不是客户端配置文件)
  • 添加了对Database1程序集的引用(也尝试了项目引用),以及对TestConsoleApplication1项目的System.Data程序集的引用
  • 将System.Data程序集的using指令添加到默认类中,该类在我创建TestConsoleApplication1项目时自动添加
  • 试图将Database1程序集的using指令添加到默认类中,该默认类在我创建TestConsoleApplication1项目时自动添加
  • 尝试为Database1程序集添加using指令时,程序集名称未显示在intellisense中,键入程序集名称会导致Database1下出现“红色波形”
  • 试图生成项目,导致“找不到类型或命名空间名称“Database1”(是否缺少using指令或程序集引用?)错误
  • 检查、双重、三重、四重…n元组检查两个项目是否针对相同的.Net Framework版本(4.5)
  • Database1没有代码,下面是“客户端”应用程序(TestConsoleApplication1)的代码:


    有人知道为什么我可以添加对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)
            {
    
    
            }
        }
    }