IHostBuilder не содержит определения для ConfigureWebHostDefaults - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь использовать новый GenericHost в .NET Core 3.0 , задокументированный здесь , но я получаю действительно основную ошибку, которую статистика IHostBuilder не содержитопределение функции ConfigureWebHostDefaults.

Здесь вы найдете документацию ASP.NET 3.0 для интерфейса IHostBuilder здесь Я не вижу никакой ссылки на ConfigureWebHostDefaults так что я немного запутался.

Я использую пакеты 3.0.0 для Microsoft.Extensions.Hosting и Microsoft.Extensions.Hosting.Abstractions, но не могу помочь, но чувствую, что я либо упускаю что-то действительно очевидное, либо что ConfigureWebHostDefaults по какой-то причине был удален?

Обновление - снимок экрана Program.cs

enter image description here

Обновление - файл .csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>

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

</Project>

1 Ответ

2 голосов
/ 25 сентября 2019

Наряду с using Microsoft.Extensions.Hosting, ConfigureWebHostDefaults также требуется using Microsoft.AspNetCore.Hosting; следующим образом:

using Microsoft.AspNetCore.Hosting; //<-- Here it is
using Microsoft.Extensions.Hosting;

namespace MyApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateWebHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}

Кроме того, ваш проект выглядит как консольное приложение.Это проблема.ConfigureWebHostDefaults только для веб-приложений.Таким образом, вы можете преобразовать ваше консольное приложение в Web Applicaton, заменив Sdk="Microsoft.NET.Sdk" на Sdk="Microsoft.NET.Sdk.Web" в вашем .csproj файле следующим образом:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

</Project>
...