问题描述
我正在将dotnet core 2.2应用程序升级到3.1。我有多种服务和一个基本库,所有这些库最初都是在2.2 AspDotNetCore中开发的。我的计划是:
- 首先将我的基础库转换为Dotnet标准2.1。只需很少的参考更改,我就能成功做到这一点。
- 现在我在其他AspDotnet核心应用程序中引用了这个基本的2.1 dotnet标准库,我正在将其从2.2 dotnet核心升级到3.1 dotnet核心。在这里,我得到如下错误。
无法从程序集“ Microsoft.AspNetCore.Routing,Version = 3.1.7.0,Culture = neutral,PublicKeyToken = adb9793829ddae60”中加载类型'Microsoft.AspNetCore.Internal.EndpointRoutingApplicationBuilderExtensions'
发生此错误的位置是UseMvcCoreServices,这是我的自定义扩展提及:
public void Configure(IApplicationBuilder app,IWebHostEnvironment env,IHttpContextAccessor ca,IHostApplicationLifetime applicationLifetime)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app
.UseMvcCoreServices(Configuration,Logger,env)
.UseElasticClient(Configuration,Logger);
我关注了很多链接,例如: [https://medium.com/@alexandre.malavasi/migration-from-asp-net-core-2-2-to-3-1-real-project-ca382ea7eef7]和 [https://docs.microsoft.com/zh-cn/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&tabs=visual-studio]
但是没有运气。有人能帮我吗。对我来说真的很重要。
解决方法
默认情况下,ASP.NET 3.0和更高版本已启用端点路由。您只需在Startup.cs文件的Configure()方法中添加app.UseRouting()’,然后再添加任何其他需要访问路由的中间件。
有关详细信息,请访问以下链接:https://www.yogihosting.com/aspnet-core-endpoint-routing/