隨著.NET Core版本的升級,IHostingEnvironment 已經被標示為過時語句,取而代之的是 Microsoft.Extensions.Hosting 命名空間中的 IWebHostEnvironment 。
但會發現在3.1專案中開發 DLL 時卻找不到該介面,因為官方表示從 .NET Core 3.0,使用 Microsoft.NET.Sdk.Web MSBuild SDK 的專案會隱含地參考共用架構。 使用 Microsoft.NET.Sdk 或 Microsoft.NET.Sdk.Razor SDK 的專案必須參考 ASP.NET Core,才能在共用架構中使用 ASP.NET Core Api。
所以修改 DLL 專案檔為
<Project sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
便能正確取得 3.1 版本的內容,而非舊版內容。
參考連結