Sti*_*son 1 .net-core asp.net-core asp.net-core-2.1
我正在尝试使用新的通用主机创建.Net Core 2.1.1控制台应用程序.
这是一个非常简单的程序,只是一个.net核心2.1控制台应用程序,如下所示:
using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;
namespace ConsoleApp1 {
internal class Program {
private async Task Main(string[] args)
{
await new HostBuilder()
.ConfigureAppConfiguration(x => x.SetBasePath("."))
.RunConsoleAsync();
}
}
}
Run Code Online (Sandbox Code Playgroud)
而不是安装巨大的包Microsoft.AspNetCore.App元数据包,我想我可以只安装包Microsoft.Extensions.Hosting v. 2.1.1,所以我.csproj变成:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="2.1.1" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
该软件包安装了许多其他软件包:
当我这样做时,我遇到麻烦,因为扩展方法IConfigurationBulider.SetBasePath(实现Microsoft.Extensions.Configuration.FileConfigurationExtensions)无法通过编译器/构建过程解析/找到.
我已经尝试完全限定扩展方法,但就好像项目中没有引用包中的相关程序集.
解决方案是添加巨大的Microsoft.AspNetCore.App元数据包然后它可以工作.但是当我的应用程序与AspNet Core无关时,我发现我需要添加一个AspNetCore包,这一点很奇怪.
- 为什么有必要添加Microsoft.AspNetCore.App并且可以以某种方式避免它?
它不是,只是方便,易于开始使用教程.您甚至不必打扰,在您发布/构建应用程序时,无论如何都会剥离未引用的包.另见这个答案.
为什么有必要添加Microsoft.AspNetCore.App并且可以以某种方式避免它?在WebHostBuilder逐步淘汰以支持通用主机构建器之前,它只是一个临时问题吗?
不是.Microsoft.Extensions.Configuration.FileConfigurationExtensions是Microsoft.Extensions.Configuration.FileExtensions / package的一部分,您没有参考,因此您得到的错误
| 归档时间: |
|
| 查看次数: |
265 次 |
| 最近记录: |