类库(标准2.1或Core 3.1):找不到名称空间名称'IWebHostEnvironment'

问题描述 投票:0回答:2
  1. 新项目,类库(.NET标准)
  2. 在项目上,属性从2.0更改为2.1
  3. Modified Class1:
public class Class1
{
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {

    }
}
  1. 这(正确地解决了)IApplicationBuilder变红了:
  2. 但是库项目无法编译:“错误CS0246找不到类型或名称空间名称'IWebHostEnvironment'...”

请为这两个接口添加哪些引用?还是只在网站项目中只使用过这些接口?

。NET Core 3.1类库的结果也相同。Visual Studio 16.4.4

非常感谢任何帮助。

.net-standard .net-core-3.1 .net-standard-2.1
2个回答
0
投票

您可能要遵循本指南(用于将2.2迁移到3.0)

https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&tabs=visual-studio

这说明IWebHostEnvironment发生了什么(改为使用IHostEnvironment

https://github.com/dotnet/AspNetCore/issues/7749

因此,对于您来说,您可能(至少)想要使用csproj:

<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.2.7" />    
    <PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.1" />
  </ItemGroup>

这是新的类定义:

using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Hosting;

namespace ClassLibrary2
{
    public class Class1
    {
        public void Configure(IApplicationBuilder app, IHostEnvironment env)
        {

        }
    }
}


0
投票

这似乎在.NET Core 3.1类库项目文件中有效,但在.NET Standard 2.1中无效:

我在项目文件中添加了以下内容:

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

现在构建成功::>

public class Class1
{
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {

    }
}

。NET Standard 2.1类库项目是否有方法支持新的IWebHostEnvironment?

© www.soinside.com 2019 - 2024. All rights reserved.