在Visual Studio中更优雅地解决红色的nuget依赖关系

时间:2019-03-07 17:46:26

标签: visual-studio nuget nuget-package

我正在使用Visual Studio 2017学习通用主机,我正在研究的示例是{{3}}。我逐行重新输入代码,发现红色的波浪线。

var host = new HostBuilder()
    .ConfigureHostConfiguration(configHost =>
    {
        configHost.SetBasePath(Directory.GetCurrentDirectory());
        configHost.AddJsonFile("hostsettings.json", optional: true);
        configHost.AddEnvironmentVariables(prefix: "PREFIX_");
        configHost.AddCommandLine(args);
    })

如果我们不加载相关的nuget包,有时无法按ctrl+.

我尝试通过查找using名称空间,然后加载相关的nuget软件包来一一修复。不幸的是,由于扩展方法存在于名称不同步的不同nuget包中,因此并不总是那么容易。

问题

有没有更优雅的方法来解决此问题?

编辑

我应该做以下笔记吗?

IHost host = new HostBuilder()
    .ConfigureHostConfiguration(icb =>
    {
        //FileConfigurationExtensions class in
        //Microsoft.Extensions.Configuration.FileExtensions
        icb.SetBasePath(Directory.GetCurrentDirectory());

        //JsonConfigurationExtensions class in
        //Microsoft.Extensions.Configuration.Json
        icb.AddJsonFile("appsettings.json");
    })
  

教育不应专注于记住我们可以轻松查找的内容。它应该着重于解决问题的能力。

1 个答案:

答案 0 :(得分:1)

  

有没有更优雅的方法来解决此问题?

是的,当我们使用nuget来管理引用时,nuget有记录来保存我们已安装的软件包。

返回上一个目录:

GenericHostSample.csproj

您将找到项目文件GenericHostSample.csproj,然后打开它,您将找到以下内容:

  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="2.1.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="2.1.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.0" />
    <PackageReference Include="Microsoft.Extensions.Hosting" Version="2.1.0" />
    <PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="2.1.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="2.1.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="2.1.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.1.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.1.0" />
  </ItemGroup>

因此,我们可以知道该项目需要哪些nuget软件包及其版本。

希望这会有所帮助。