1

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

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

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

解决方案基础 - Base.Domain - Base.Security - Base.Tests - Base.WebUI

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

namespace Base.Security.Providers
{
    public class EFRoleProvider : System.Web.Security.RoleProvider
    {
        //code here
    }
}

我在 Base.Tests 和 Base.Tests 中引用了 Base.Security 我有以下文件(这给了我错误):

using Base.Security.Providers;

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

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

4

1 回答 1

1

确保您的项目是针对相同的 .NET 版本构建的。从 .NET 4.0 项目添加对 .NET 3.5 项目的引用时,我遇到了这个问题。

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

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

于 2012-11-20T21:15:02.717 回答