我的解决方案不会编译。我在尝试编译项目时收到错误消息:
然而,这是令人困惑的,因为我引用了项目,这是正确的命名空间!这是解决方案设置错误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类型?
答案 0 :(得分:1)
确保您的项目是针对相同的.NET版本构建的。从.NET 4.0项目添加对.NET 3.5项目的引用时,我遇到了这个问题。
要检查/更改.NET版本,请右键单击项目,选择属性,然后在“应用程序”选项卡下,确保每个项目的“目标框架”相同。
您的代码看起来正确,这与设置引用的方式有关。