.NET 6+ 中的 FileExtensionContentTypeProvider

Mas*_*r_T 3 .net nuget asp.net-core .net-6.0

我正在将旧ASP.NET Core 2.2应用程序升级到.NET 6

我能够升级每个包,但是我缺少一个:

Microsoft.AspNetCore.StaticFiles
Run Code Online (Sandbox Code Playgroud)

这个包似乎没有维护,事实上 NuGet 上的最后一个可用版本是 2.2.0,它被标记为已弃用。

我检查了我的应用程序的代码,我从这个包中使用的唯一类是该类FileExtensionContentTypeProvider,我用它来将文件扩展名转换为相应的 MIME 类型。

我的问题是:这个类可以在未弃用且最新的包中的其他地方找到吗?如果没有,是否有一个未弃用的等效项可以提供相同的功能(文件扩展名到 MIME 类型转换)?

Gur*_*ron 6

FileExtensionContentTypeProvider是 ASP.NET Core 的一部分,现在不需要额外的包。查看从 ASP.NET Core 2.2 迁移到 3.0文档。在此迁移期间,处理依赖项的方法发生了很大变化,许多Microsoft.AspNetCore包不再发布,不应在 .csproj 文件中直接引用,将项目 SDK 设置为Microsoft.NET.Sdk.Web就足够了。

要在类库中或<FrameworkReference Include="Microsoft.AspNetCore.App" />通过 .csproj 中指定的不同项目 SDK 使用 ASP.NET Core 功能,请参阅此答案

  • 使用 FrameworkReference 有效,谢谢!(因为我怀疑使用 Web sdk 在库中不起作用,所以该项目需要有一个 Main)。 (2认同)