找不到类型或命名空间IAppBuilder(缺少使用指令作为程序集引用)

DoI*_*oIt 62 c# asp.net-mvc-4 signalr owin

我正在开发一个Asp.Net MVC 4应用程序,我在其中使用SignalR 2.0.1并使用Owin Startup类映射它,并且它最初工作正常.

突然间,当我尝试重建我的应用程序时,它说类型名称空间IAppbuilder无法找到.

以下是我的启动课程

using Microsoft.Owin;
using Owin;
using WhiteBoardApp;

namespace WhiteBoardApp
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我也安装了Owin包,由于某些原因我找不到Owin Startup类,所以我只添加了一个普通类并包含了所需的所有引用.我可以知道我在哪里弄错了

sco*_*732 132

尝试使用Package Manage Console并执行此操作

Update-Package Owin -Reinstall
Run Code Online (Sandbox Code Playgroud)

  • 用户建议编辑以删除-Reinstall标志.这可能是值得解释的区别.-Reinstall标志将导致NuGet重新应用您已安装的相同版本的软件包.这就像修复操作.通常它已经在packages文件夹中,不需要下载.如果没有此标志,操作会将程序包更新到最新版本,但仅限于有较新版本的情况.此外,这可能会影响依赖它的其他包.如果您已经安装了最新版本,我认为这不会做任何事情. (2认同)

Иво*_*дев 22

我有类似的问题.但相反,Owin问题显然导致了Microsoft.Owin

Update-Package Owin -Reinstall
Run Code Online (Sandbox Code Playgroud)

没有工作,也没有 Update-Package Owin

Install-Package Microsoft.Owin
Run Code Online (Sandbox Code Playgroud)

对我来说工作得很好,谢谢.


chr*_*ith 7

IAppBuilder接口位于Owin包下.只需在类文件中添加引用:

使用Owin;

并重建.你的项目会选择它.

我不知道VS为什么不接这个,但事实并非如此.一旦我将这个引用添加到我的项目中,那么一切都已落实到位.


iwi*_*not 6

我在构建项目时遇到了同样的问题。以下是帮助解决我的问题的步骤:

  1. 前往Solution Explorer并查找您的项目
  2. 在您的项目下,展开References; 您应该会看到有关有问题的参考的警告
  3. 右键单击References并打开Manage NuGet Packages
  4. 搜索有问题的参考文献的名称,即Microsoft.Owin;加载后显示它已经安装(确实如此,但安装不正确。检查步骤2中的属性>版本显示0.0.0.0
  5. 查看Force uninstall, even if there are dependencies on it
  6. 卸载
  7. 安装
  8. 构建并运行项目

问题

无法安装,Microsoft.Web.Infrastructure因为它已存在于软件包文件夹中。滚回来...

  1. 转到您的项目文件夹并查找包
  2. 找到有问题的包即Microsoft.Web.Infrastructure
  3. 删除文件夹
  4. 从步骤 7 继续

备择方案

以下是我读过的解决此类问题的替代方案。

  • 清理和重建项目/解决方案
  • 重新启动 Visual Studio
  • 重新启动电脑

祝你好运。