'类型或命名空间名称'找不到"不同机器上的错误

本文关键字:机器 错误 类型 命名空间 找不到 quot | 更新日期: 2023-09-27 18:14:14

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

基本上,即使有正确的"using"语句并且包看起来完好无损,我们也会得到这些名称空间错误的详细列表。每次我尝试在不同的机器上打开并构建项目时,都会发生这种情况。

下面是一些例子…

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、文化=中立

类型'IDataProtectionProvider'定义在一个程序集中不引用。必须添加对程序集的引用"Microsoft.Owin。安全,版本=2.1.0.0,文化=中性

'HttpContextBase'不包含'GetOwinContext'的定义并且没有扩展方法'GetOwinContext'接受第一个参数类型'HttpContextBase'可以找到(你错过了一个使用指令还是程序集引用?)

等等,等等,等等……

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

提前感谢您的时间和帮助。

'类型或命名空间名称'找不到"不同机器上的错误

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

如果你看看你的包装。你会发现它包含包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包的更多信息

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

奇怪的是,一个留下了,不愿离开。关联的using语句和引用只是System。Web和我尝试了10种不同的方法来删除,更改,更新等等。注意了!所以,我尝试重新启动Visual Studio(当所有其他的失败开始重新启动的东西,对吧?),不知何故,摆脱了最后一个错误…

我确实从你们那里学到了有价值的东西,尽管这个过程…