C# 命名空间/引用错误

C# 命名空间/引用错误,c#,namespaces,C#,Namespaces,我的解决方案无法编译。我尝试编译项目时收到错误消息: 错误2命名空间“Base”中不存在类型或命名空间名称“Security”(是否缺少程序集引用?) 然而,这是令人困惑的,因为我引用了该项目,并且这是正确的名称空间!这是解决方案设置 溶液基 -基本域 -基地安全 -基本测试 -Base.WebUI 在Base.Security中,我有一个自定义角色提供程序文件,如下所示: namespace Base.Security.Providers { public class EFRolePr

我的解决方案无法编译。我尝试编译项目时收到错误消息:

错误2命名空间“Base”中不存在类型或命名空间名称“Security”(是否缺少程序集引用?)

然而,这是令人困惑的,因为我引用了该项目,并且这是正确的名称空间!这是解决方案设置

溶液基 -基本域 -基地安全 -基本测试 -Base.WebUI

在Base.Security中,我有一个自定义角色提供程序文件,如下所示:

namespace Base.Security.Providers
{
    public class EFRoleProvider : System.Web.Security.RoleProvider
    {
        //code here
    }
}
我在Base.Tests和Base.Tests中引用了Base.Security,我有以下文件(这给了我错误):


我不明白。。为什么我不能从Base.Tests访问Base.Security类型?

请确保您的项目是根据相同的.NET版本生成的。我在从.NET4.0项目添加对.NET3.5项目的引用时遇到了这个问题

要检查/更改.NET版本,请右键单击项目,选择“属性”,并在“应用程序”选项卡下确保每个项目的“目标框架”相同


您的代码看起来是正确的,这是引用设置方式的问题。

确保您的项目是根据相同的.NET版本生成的。我在从.NET4.0项目添加对.NET3.5项目的引用时遇到了这个问题

要检查/更改.NET版本,请右键单击项目,选择“属性”,并在“应用程序”选项卡下确保每个项目的“目标框架”相同


代码看起来是正确的,这是引用设置方式的问题。

如果右键单击项目并单击属性,名称空间和程序集名称会显示什么?另外,如果删除using指令,右键单击
EFRoleProvider
并单击Resolve,它认为应该使用什么程序集?删除
程序后,解决方案是否正确生成?有时,这样一条毫无意义的错误消息表明支持引用/程序集中存在更深层次的问题。您是在引用项目还是程序集?您是否尝试过完全清理和重建?如果您右键单击项目并单击属性,您的命名空间和程序集名称会显示什么?另外,如果删除using指令,右键单击
EFRoleProvider
并单击Resolve,它认为应该使用什么程序集?删除
程序后,解决方案是否正确生成?有时,这样一条毫无意义的错误消息表明支持引用/程序集中存在更深层次的问题。您是在引用项目还是程序集?你试过彻底清理和重建吗?就是这样!我有一个Base.Tests项目,它使用“.NETFramework 4.0客户端配置文件”而不是“.NETFramework 4.0”。。。添加了一些额外的参考资料,现在可以使用了!当计时器启动时,将接受此作为答案。关于常规4.0和4.0“客户端配置文件”之间的区别有什么见解吗?另外,我很确定其他版本默认为.NET 4.0-为什么控制台应用程序默认为“客户端配置文件”版本?我发现这篇文章:这篇文章描述得很好。我不知道为什么这个错误消息不是更有用。就是这样!我有一个Base.Tests项目,它使用“.NETFramework 4.0客户端配置文件”而不是“.NETFramework 4.0”。。。添加了一些额外的参考资料,现在可以使用了!当计时器启动时,将接受此作为答案。关于常规4.0和4.0“客户端配置文件”之间的区别有什么见解吗?另外,我很确定其他版本默认为.NET 4.0-为什么控制台应用程序默认为“客户端配置文件”版本?我发现这篇文章:这篇文章描述得很好。我不知道为什么这个错误消息没有多大用处。
using Base.Security.Providers;

namespace Base.Tests
{
    class Program
    {
        static void Main(string[] args)
        {
            var a = new EFRoleProvider();
            //more stuffs
        }
    }
}