为啥我会收到“无法解析符号 'CreatePerOwinContext'”?

Posted

技术标签:

【中文标题】为啥我会收到“无法解析符号 \'CreatePerOwinContext\'”?【英文标题】:Why do I get "Cannot resolve symbol 'CreatePerOwinContext'"?为什么我会收到“无法解析符号 'CreatePerOwinContext'”? 【发布时间】:2015-02-28 10:39:31 【问题描述】:

我有一个自托管的 o​​win Web Api,我正在尝试为每个 Owin 请求使用我的 EF 上下文的单个实例。这是我的启动类的配置代码。

public void Configuration(IAppBuilder app)
         
    app.CreatePerOwinContext(A3Context.Create);

这不会构建,因为我收到以下错误。

错误

5 'Owin.IAppBuilder' 不包含 'CreatePerOwinContext' 并且没有扩展方法 'CreatePerOwinContext' 可以找到接受“Owin.IAppBuilder”类型的第一个参数 (您是否缺少 using 指令或程序集引用?)

我错过了一个我不知道的参考资料吗?

【问题讨论】:

类似的问题? ***.com/questions/23057459/… 我不这么认为。我使用的版本都不匹配您链接中提到的版本。 【参考方案1】:

CreatePerOwinContext 是 Microsoft.AspNet.Identity.Owin NuGet 包中的扩展方法。

要解决此问题,请为您的项目打开包管理器控制台并使用以下命令进行安装:

Install-Package Microsoft.AspNet.Identity.Owin

确保您引用的是包含扩展方法的命名空间:

using Owin;

【讨论】:

同样的错误但是...."Web 已经引用了 'Microsoft.AspNet.Identity.Owin 2.2.1'。" Resharper 为我提供了添加对 dll 的引用的选项,并且它起作用了。一定是项目搞混了。 @IanWarburton - 很高兴你把它清理干净了。该错误意味着该包已经在您正在运行该命令的项目的 packages.config 中。需要注意的一件事是,如果您有多个项目,则调用此代码的每个项目都需要在其自己的 packages.config 中包含该包。 Resharper 不会为您做这些,它只是复制 DLL 引用。这意味着,在新结帐时,nuget 不会将解决方案恢复到构建状态。如果 DLL 有它,你只需要确保你有“使用 Owin”;命名空间来访问扩展方法。 Resharper 应该运行 nuget 或至少更新软件包文件。 使用 ASP.NET 5 (DNX 4.5.1) 我可以添加包和引用,但仍然没有 IApplicationBuilder 的 Owin 扩展(我假设以前称为 IAppBuilder),@cchamberlain?

以上是关于为啥我会收到“无法解析符号 'CreatePerOwinContext'”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我会收到此错误

为啥我会收到这个 TypeError?

为啥我会收到序列化错误?

为啥我会收到错误消息?

知道为啥我会收到此错误吗?

为啥我会收到这种错误验证错误?