在startup.cs文件行升级到.NET 9后的ASP.NET 9 MVC应用程序中
app.UseStaticFiles();
被替换为line
app.MapStaticAssets();
根据https://learn.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-9.0
这会导致编译时错误 CS1929
“IApplicationBuilder”不包含定义 “MapStaticAssets”和最佳扩展方法重载 'StaticAssetsEndpointRouteBuilderExtensions.MapStaticAssets(IEndpointRouteBuilder, string?)' 需要类型的接收器 'Microsoft.AspNetCore.Routing.IEndpointRouteBuilder'
如何使用MapStaticAssets?
“IApplicationBuilder”不包含定义 “MapStaticAssets”和最佳扩展方法重载 'StaticAssetsEndpointRouteBuilderExtensions.MapStaticAssets(IEndpointRouteBuilder, string?)' 需要类型的接收器 'Microsoft.AspNetCore.Routing.IEndpointRouteBuilder'
无法重现问题。根据错误信息,问题可能与您的计算机中没有添加.NET 9 SDK和Runtime有关。
因此,您可以检查并尝试以下操作:
使用最新版本的 Visual Studio 并安装 .NET 9.0 运行时(通过 Visual Studio 安装程序)
检查项目文件,确保使用的是
.net9.0
TargetFramework,并将相关包升级到9.0版本。
打开根文件夹,删除bin和obj文件夹,然后重建应用程序。
另外,使用MapStaticAssets时,请参考以下代码:
最后,如果仍然无法工作,请尝试创建一个新的.NET 9 MVC应用程序并检查它是否工作。