Tim*_*Tim 1 c# asp.net-core-3.0
我正在尝试使用此处记录的.NET Core 3.0中的新功能GenericHost
,但遇到一个非常基本的错误,即统计信息不包含该函数的定义。IHostBuilder
ConfigureWebHostDefaults
在这里查看ASP.NET 3.0文档的IHostBuilder
接口,我看不到任何引用,ConfigureWebHostDefaults
因此有点困惑。
我正在使用3.0.0程序包Microsoft.Extensions.Hosting
,Microsoft.Extensions.Hosting.Abstractions
但是却束手无策,但感觉到我遗漏了某些明显的东西,或者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>
Run Code Online (Sandbox Code Playgroud)
与一起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>();
});
}
}
Run Code Online (Sandbox Code Playgroud)
而且,看起来您的项目是一个控制台应用程序。那就是问题所在。ConfigureWebHostDefaults
仅适用于Web应用程序。因此,您可以通过在文件中替换Sdk="Microsoft.NET.Sdk"
为Sdk="Microsoft.NET.Sdk.Web"
,将控制台应用程序转换为Web Applicaton,.csproj
如下所示:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)