首页 > 解决方案 > 如何导入 Microsoft.AspNetCore.Hosting.IWebHostEnvironment?

问题描述

我的项目中的以下代码出现以下错误。

public static IServiceCollection AddInfrastructure(this IServiceCollection services, 
  IConfiguration configuration, 
  Microsoft.AspNetCore.Hosting.IWebHostEnvironment environment) // Error
{
    //    .....
    return services;
}

错误 CS0234 名称空间“Microsoft.AspNetCore.Hosting”中不存在类型或名称空间名称“IWebHostEnvironment”(您是否缺少程序集引用?)

我已经导入了 nuget 包。

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.2.7" />
    <PackageReference Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" />
  </ItemGroup>

在此处输入图像描述

标签: c#asp.net-core

解决方案


如果要Microsoft.AspNetCore.Hosting.IWebHostEnvironment在 Web 项目以外的单独库项目中使用,则必须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>

推荐阅读