'IServiceCollection' 不包含 'AddSession' 的定义

'IServiceCollection' does not contain a definition for 'AddSession'

使用 VS2017 在 ASP.Net Core 1.1 中添加 'AddSession' 时出现错误。

'IServiceCollection' does not contain a definition for 'AddSession' and no extension method 'AddSession' accepting a first argument of type 'IServiceCollection' could be found (are you missing a using directive or an assembly reference?)

.csproj

此解决方案中已安装包。

<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>

<PropertyGroup>
<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
</PropertyGroup>
 <ItemGroup>
  <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
  <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Session" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" />
 </ItemGroup>
 <ItemGroup>
 <DotNetCliToolReference 
 Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />
</ItemGroup>

 </Project>

错误:

依赖项的版本似乎不同步。使用 Nuget 将所有包更新为相同版本,这应该可以解决问题。这适用于大多数(如果不是全部的话)Microsoft.* 包。

您还需要以下 using 语句:

using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using System;

我通过以下方式解决了问题。

  1. 清理并重建解决方案。
  2. 重启 Visual Studio 2017.

感谢@HenkMollema

我知道这有点晚了,但是您是否尝试从 nuget 安装 Microsoft.AspNetCore.Session 包?

https://www.nuget.org/packages/Microsoft.AspNetCore.Session/

在Visual Studio中: 安装包 Microsoft.AspNetCore.Session - 版本 1.1.2(在我的例子中)

对我有用!

确保你有

<PackageReference Include="Microsoft.AspNetCore.Session" Vesion="1.1.1" />

(或更新版本)在您的 .csproj 文件中。

看来你错过了什么。在程序包管理器控制台中,写入:

install-package Microsoft.AspNetCore.Session -version x.x.x

x.x.x 取决于您的项目参考

运行 在您的包管理器控制台中执行以下命令

Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection