我在.net core 2.1 aspnet应用程序中有以下工作
using System;
using System.IO;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
public class Program
{
public static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(path: "appsettings.json", optional: false, reloadOnChange: true)
.Build();
当我尝试使用.net core 3.1 WInforms应用程序进行类似操作时,我发现SetBasePath和AddJsonFile不可用
using Microsoft.Extensions.Configuration;
using System;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace myapp {
public partial class Form1 : Form
{
private SyndicationFeed feed;
public Form1()
{
InitializeComponent();
var configuration = new ConfigurationBuilder();
configuration.SetBasePath(System.IO.Directory.GetCurrentDirectory()); // errors here
configuration.AddJsonFile(path: "appsettings.json", optional: false, reloadOnChange: true); // errors here
configuration.Build();
}
答案 0 :(得分:2)
我尝试了与您发布的相同的代码。添加以下NuGet软件包后,我可以编译并运行该应用程序。
Microsoft.Extensions.Configuration(版本3.1.0)
Microsoft.Extensions.Configuration.Json(版本3.1.0)
很可能您的环境中缺少这些软件包。
答案 1 :(得分:1)
您的扩展方法SetBasePath在Config.FileExtensions
中定义。
您可以检查是否缺少对以下内容的引用:
Microsoft.Extensions.Configuration.FileExtensions
包。
要解析AddJsonFile,需要添加对Microsoft.Extensions.Configuration.Json
包的引用。