0

我和我的合作者一直在不断地遇到这个问题,因为我们试图更新项目并在 GitHub 上分享它。是的,我已经用谷歌搜索并搜索了几天的论坛。没有什么...

基本上,即使存在正确的“使用”语句并且包看起来完好无损,我们也会得到这些命名空间错误的清单。每次我尝试在不同的机器上打开和构建项目时都会发生这种情况。

这里有些例子...

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using System.Web;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security;
using ScatterSchool.Models;

但是...

找不到类型或命名空间名称“IOwinContext”(您是否缺少 using 指令或程序集引用?)

找不到类型或命名空间名称“IAuthenticationManager”(您是否缺少 using 指令或程序集引用?)

'IOwinContext' 类型在未引用的程序集中定义。您必须添加对程序集 'Microsoft.Owin, Version=2.1.0.0, Culture=neutral

“IDataProtectionProvider”类型是在未引用的程序集中定义的。您必须添加对程序集 'Microsoft.Owin.Security, Version=2.1.0.0, Culture=neutral

“HttpContextBase”不包含“GetOwinContext”的定义,并且找不到接受“HttpContextBase”类型的第一个参数的扩展方法“GetOwinContext”(您是否缺少 using 指令或程序集引用?)

等等等等等等……

据我所知,所有这些都被引用并且软件包似乎已安装。当然,我是新手,可能会感到困惑。一次又一次地遇到一个愚蠢的问题,就像我的谷歌搜索和挣扎现在应该解决的问题一样。

TY 提前为您提供时间和帮助。

4

2 回答 2

2

看起来您缺少 NuGet 包。检查您的 packages.conf 文件并确保在您的目标机器上安装了所有声明的包。请单击“解决方案资源管理器”中的“参考”文件夹,并确保您已在其中注册了所有软件包(没有警告标志)。

如果您查看您的 packages.config 文件,您会发现它包含包 ID、版本和 targetFramework。例如:

  <package id="Microsoft.Owin" version="3.0.1" targetFramework="net45" />

如果您需要下载特定版本的软件包,您可以通过

Install-Package Microsoft.Owin -Version 2.1.0

或者您可以通过以下方式将您的软件包更新到最新版本

Update-Package Microsoft.Owin

要检查是否有可用于已安装软件包的新版本,请使用:

Get-Package -updates

您可以在此处找到有关管理 NuGet 包的更多信息

于 2015-09-22T17:55:20.250 回答
0

所以最奇怪的事情似乎已经消除了大部分错误:我只是删除了解决方案资源管理器中的引用然后重新添加它们,有时需要浏览到项目的文件系统以获取已经存在的程序集/包(DLL文件)......这样一个奇怪的解决方案,希望我每次转移机器时都不必重复。

奇怪的是,一个人留下了,不会离开。相关的 using 语句和引用只是 System.Web,我尝试了 10 种不同的方法来删除、更改、更新等……注意帮助!所以,我尝试重新启动 Visual Studio(当一切都失败时开始重新启动东西,对吗?)并且不知何故摆脱了最后一个错误......

我确实从你们和这个过程中学到了有价值的东西......

于 2015-09-22T21:51:38.150 回答