我已经完全解决了您的问题,并且知道如何解决它:)
将此添加到您的* .csproj文件:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.0" />
</ItemGroup>
因此IWebHostEnvironment
位于nuget包Microsoft.AspNetCore.App中。
我真的不知道IWebHostEnvironment
为何不与软件包Microsoft.AspNetCore.Hosting
一起提供,即使它在该命名空间中也是如此。真是令人困惑。也许将来会清理...
更新
以上解决方案可在Winidows上使用,但我现在尝试使该项目在带有Visual Studio for Mac的macOS上运行,并且无法构建。解决方案如@ mindplay.dk的注释中所述,以将项目类型更改为* .csproj文件第一行中的<Project Sdk="Microsoft.NET.Sdk.Web">
。 (即使这对我的ClassLibrary项目没有任何意义)
重现步骤:只需尝试将IWebHostEnvironment放在一个单独的类库项目中,就会遇到所有这些问题...
,
Microsoft.AspNetCore.Hosting.IWebHostEnvironment
在asp.net core 3中不存在,您应该使用IWebHostEnvironment
。
看一下:Migration to asp.net core 3和Github Announcement
请注意,新的IHostEnvironment IsDevelopment,IsProduction等扩展方法位于Microsoft.Extensions.Hosting命名空间中,可能需要将其添加到您的应用程序中。
所以您可能需要向项目添加一些NuGet包引用
,
扩展CodingYourLife的答案。
在包含其他框架时,应将其包含在FrameworkReference
标签中,以使其正确加载:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
,
如果要在Web项目以外的单独库项目中使用Microsoft.AspNetCore.Hosting.IWebHostEnvironment
,则必须通过编辑项目文件将Microsoft.AspNetCore.App
包引用显式添加到库项目。
在Dotnet 5.0中,我们也必须遵循相同的方法。
<Project SDK="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<ItemGroup>...</ItemGroup>
</Project>
本文链接:https://www.f2er.com/3164248.html