我正在尝试使用新的GenericHost
in .NET Core3.0 documented 这里,但是我得到了一个非常基本的错误,statsIHostBuilder
没有包含ConfigureWebHostDefaults
函数的定义。
看看这里的ASP.NET 3.0文档,关于IHostBuilder
接口这里,我看不到对ConfigureWebHostDefaults
的任何引用,所以我有点困惑。
我正在为Microsoft.Extensions.Hosting
和Microsoft.Extensions.Hosting.Abstractions
使用3.0.0包,但忍不住觉得我遗漏了一些非常明显的东西,或者ConfigureWebHostDefaults
因为某种原因被删除了?
Program.cs的更新屏幕截图
更新-- .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>
发布于 2019-09-25 11:47:56
与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应用程序,方法是将Sdk="Microsoft.NET.Sdk"
替换为.csproj
文件中的Sdk="Microsoft.NET.Sdk.Web"
,如下所示:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
</Project>
https://stackoverflow.com/questions/58097568
复制相似问题