首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何导入Microsoft.AspNetCore.Hosting.IWebHostEnvironment?

如何导入Microsoft.AspNetCore.Hosting.IWebHostEnvironment?
EN

Stack Overflow用户
提问于 2019-11-04 19:21:17
回答 3查看 11K关注 0票数 11

我的项目中的下列代码将得到以下错误。

代码语言:javascript
复制
public static IServiceCollection AddInfrastructure(this IServiceCollection services, 
  IConfiguration configuration, 
  Microsoft.AspNetCore.Hosting.IWebHostEnvironment environment) // Error
{
    //    .....
    return services;
}

名称空间‘

’CS0234中不存在类型或名称空间名称'IWebHostEnvironment‘(您是否缺少程序集引用)

我已经进口了nuget包装。

代码语言:javascript
复制
  <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>

EN

回答 3

Stack Overflow用户

发布于 2020-11-19 08:21:53

如果要在web项目以外的单独库项目中使用Microsoft.AspNetCore.Hosting.IWebHostEnvironment,则必须通过编辑项目文件向库项目显式添加Microsoft.AspNetCore.App包引用。

在DotNet5.0中,我们也必须遵循同样的方法。

代码语言:javascript
复制
<Project SDK="Microsoft.NET.Sdk">

 <PropertyGroup>
  <OutputType>Library</OutputType>
  <TargetFramework>net5.0</TargetFramework>
 </PropertyGroup>

 <ItemGroup>
  <FrameworkReference Include="Microsoft.AspNetCore.App" />
 </ItemGroup>

 <ItemGroup>...</ItemGroup>

</Project>
票数 14
EN

Stack Overflow用户

发布于 2020-04-11 11:28:42

我完全了解你的问题,并知道如何解决它:)

将其添加到*.csproj文件中:

代码语言:javascript
复制
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.0" />
  </ItemGroup>

所以IWebHostEnvironment在nuget包Microsoft.AspNetCore.App中。

我真的不知道为什么IWebHostEnvironment没有附带包Microsoft.AspNetCore.Hosting,即使它在那个名称空间中。真让人费解。也许这件事将来会被清理..。

更新

上面的解决方案可以在Winidows上运行,但是我现在已经尝试让这个项目在macOS上运行,并与一起运行,而它就是无法构建。解决方案如@mindplay.dk注释中所示,将项目类型更改为*.csproj文件的第一行中的<Project Sdk="Microsoft.NET.Sdk.Web">。(即使这对我的ClassLibrary项目没有任何意义)

复制步骤:只需尝试将IWebHostEnvironment放在单独的类库项目中,就会遇到所有这些问题。

票数 9
EN

Stack Overflow用户

发布于 2020-10-29 11:05:50

拓展你生活的答案。当包含额外的框架时,您应该将其包含在FrameworkReference标记中,以便正确加载:

代码语言:javascript
复制
  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58699803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档