Visual Studio C#不允许我使用Microsoft.AspNet.Identity命名空间

Uch*_*chi 0 c# asp.net using-directives

为什么我的应用程序不允许我使用以下名称空间:

 using Microsoft.AspNet.Identity;
Run Code Online (Sandbox Code Playgroud)

有什么办法可以摆脱这种情况Visual Studio 2015吗?

mas*_*son 5

尽管这里的其他答案在解释如何解决此问题上是正确的,但他们并不能真正理解您在做什么或为什么有必要。

默认情况下被引用的库在Microsoft.AspNet.Identity名称空间中不包括类型。因此,您需要引用一个包含该程序集的程序集,以便实际上能够在您的代码中使用它(并使您的using语句正常工作)。

在.NET中,有两种常见的方法可以为未包含的程序集添加引用。

您可以将.dll文件下载到计算机,然后在解决方案资源管理器中右键单击您的项目或引用节点,然后浏览至下载文件的位置。但是,这种“松散的DLL”方法有一些缺点。您必须手动找到DLL。如果要获取程序集的更新版本,则必须重复此过程。而且,很难知道何时有可用的更新程序集,或者在哪里可以找到该程序集。

更好的解决方案是使用NuGet引入外部程序集。NuGet是“程序包管理器”。这是从集中式存储库安装程序集的简便方法。在nuget.org上有一个公共的NuGet存储库,.NET社区的大多数成员都在其中上载有用的程序集,以供其他人使用。实际上,Microsoft发布了一个包Microsoft.AspNet.Identity.Core,该包包含一个程序集,该程序集包含Microsoft.AspNet.Identity名称空间中的类型 。

您可以通过打开解决方案资源管理器,右键单击您的项目,单击“管理NuGet软件包”,找到该Microsoft.AspNet.Identity.Core软件包并单击“安装” ,将此NuGet软件包安装到您的项目中(这也是您可以查看是否有可用软件包更新并进行安装的地方)他们)。或者,您可以打开包管理器控制台(工具> NuGet包管理器>包管理器控制台),然后执行以下命令

Install-Package Microsoft.AspNet.Identity.Core
Run Code Online (Sandbox Code Playgroud)

您可以使用此知识在应用程序中安装大量有用的库。NuGet.org在其存储库中有超过65,000个软件包。