我不得不将我的项目从.NET Core 2.1更改为.NET 4.7.1并修复了几乎所有错误,除了以下仍然无法解决的错误
-
'IApplicationBuilder'不包含'UseHsts'的定义,也没有扩展方法'UseHsts'接受类型'IApplicationBuilder'的第一个参数(你是否缺少using指令或汇编引用?)
-
'IApplicationBuilder'不包含'UseAuthentication'的定义,并且没有扩展方法'UseAuthentication'可以找到接受类型'IApplicationBuilder'的第一个参数(你是否缺少using指令或程序集引用?)
-
'IApplicationBuilder'不包含'UseCookiePolicy'的定义,并且没有可以找到接受类型'IApplicationBuilder'的第一个参数的扩展方法'UseCookiePolicy'(您是否缺少using指令或程序集引用?)
-
'IApplicationBuilder'不包含'UseHttpsRedirection'的定义,并且没有可以找到接受类型'IApplicationBuilder'的第一个参数的扩展方法'UseHttpsRedirection'(您是否缺少using指令或程序集引用?)
-
'IApplicationBuilder'不包含'UseSession'的定义,并且没有可以找到接受类型'IApplicationBuilder'的第一个参数的扩展方法'UseSession'(您是否缺少using指令或程序集引用?)
-
'IApplicationBuilder'不包含'UseStaticFiles'的定义,也没有扩展方法'UseStaticFiles'接受类型'IApplicationBuilder'的第一个参数(你是否缺少using指令或汇编引用?)
-
'IServiceCollection'不包含'AddAuthentication'的定义,并且没有扩展方法'AddAuthentication'可以找到接受类型'IServiceCollection'的第一个参数(你是否缺少using指令或程序集引用?)
-
'IServiceCollection'不包含'AddSession'的定义,并且没有扩展方法'AddSession'可以找到接受类型'IServiceCollection'的第一个参数(你是否缺少using指令或汇编引用?)
我正在使用 Microsoft.AspNetCore.Builder
和 Microsoft.Extensions.DependencyInjection
. 我需要使用/安装/添加什么来让 IApplicationBuilder
和 IServiceCollection
工作?
在我的WebApi.csproj文件中,我将目标框架从netcoreapp2.1更改为net471 .
旧:
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
新:
<PropertyGroup>
<TargetFramework>net471</TargetFramework>
</PropertyGroup>
3 回答
按照Rik的回答,我搜索了更多的包,发现我必须添加以下所有NuGet包:
Microsoft.AspNetCore.Authentication
Microsoft.AspNetCore.Session
Microsoft.AspNetCore.HttpsPolicy
Microsoft.AspNetCore.CookiePolicy
Microsoft.AspNetCore.StaticFiles
在我这样做后,我没有收到任何错误消息 .
首先,切换到4.7.1 isn 't downgrading, it' s移动到不同的平台 . 您可能不需要做的事情,除非您想重用Winforms或WPF应用程序的代码 .
Microsoft.Extensions . *包目标是.NET Standard 2.0,而不仅仅是Core,因此您也可以在Full框架中使用它们 .
除托管外,包和类也与ASP.NET无关 . 我在控制台应用程序中使用它们 .
这也意味着如果您的类库以.NET Standard 2.0为目标,则两个平台都可以使用它们而无需更改目标 . 也许您可以将大部分代码移动到.NET Standard 2.0库,并将配置保留给特定于运行时的项目
您并不需要托管来使用所有其他扩展,尽管它确实提供了类似于ASP.NET Core代码的方便API . 您可以使用Configure etc方法编写自己的Startup类并显式调用它们 . 最后,您需要访问IServiceCollection,以便获得配置的服务并运行它们 .
您可以使用Microsoft.Exceptions.Hosting包添加generic .NET host . 除了通用API之外,它还增加了向非ASP.NET核心项目托管长期运行服务的能力 .
This blog post显示了如何使用Hosting包创建启动长时间运行服务的控制台应用程序,类似于Windows服务或守护程序,例如:
.NET Generic Host详细介绍了日志,DI,配置等的更多示例 .
UPDATE
ASP.NET Core is not 与.NET Core绑定 . 您也可以在Full Framework项目中使用它,只需在Project creationg对话框中更改目标运行时即可
可以使用以下nuget包修复“AddSession”和“UseAuthentication”错误 .
Microsoft.AspNetCore.Session
Microsoft.AspNetCore.Authentication