无法将ASP.NET标识模型移动到另一个程序集中
本文关键字:另一个 程序 程序集 集中 移动 模型 ASP NET 标识 | 更新日期: 2023-09-27 17:59:15
我已经尝试按照这个链接中描述的步骤将我的标识类从web应用程序中提取到它自己的类库中。
http://www.umbraworks.net/bl0g/rebuildall/2013/10/22/Moving_ASP_NET_Identity_model_into_another_assembly
我做如下:
- 创建了一个web表单项目,并将其命名为
3TierExample
- 创建了名为
3TierExample.Model
的新类库 - 已将NuGet中的Microsoft ASP.NET Identity EntityFramework包安装到
3TierExample.Model
中 - 将
identityModel.cs
移到新的类库(3TierExample.Model)
- 在
3TierExample
中添加了对3TierExample.Model
的引用
然后,对于identityModel.cs
,我使用以下参考:
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin.Security;
using System.Web;
using System;
using _3TierExample.Models;
我的命名空间如下:
namespace _3TierExample.Models{…}
然而,当我完成时,我得到以下错误:
I: ''3TierExample''3TierExample''Default.aspx:ASP.NET运行时错误:无法加载文件或程序集"Microsoft.AspNet.Identity.Core,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856a364e35"或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配
(HRESULT中的异常:0x80131040)
I: ''3 TierExample''3 Tierexample''Default.aspx 1 1 3 TierSample元数据文件'I:''找不到"TierExample''3TierExample.Model''bin''Debug''3TierExample.Model.dll"
未能找到类型或命名空间名称"HttpRequest"(是否缺少using指令或程序集引用?)I:''3第三示例
未能找到类型或命名空间名称"HttpResponse"(是否缺少using指令或程序集引用?)I:''3第三示例
如果我去web项目,我会看到对新创建的类库的引用在那里,所以我不知道怎么可能得到第一个错误(第3个)。然后,我认为第二个错误是由于找不到程序集引用而导致的。为什么?参考资料在那里!?
有人能帮忙吗?
提前感谢!!
存在程序集冲突。
当您创建项目时,它可能有旧版本的Asp.netIdentity程序集。您在类lib-proj中安装了最新的Asp.net标识包。如果你想将Asp.net Identity Context从主项目中分离出来,你的web项目中不需要这个框架。
您可以在创建web项目时设置无身份验证,以确保在引用Asp.net Identity Class Lib项目时不会发生冲突。您可能需要从示例Web项目中复制IdentityModels.cs,以便在类库项目中使用。