XAML “未找到配置文件”appsettings.json“,该文件不是可选的,物理路径为”C:\Windows\SysWOW64\appsettings.json“,”

ryhaxcpt  于 12个月前  发布在  Windows
关注(0)|答案(2)|浏览(158)

我试图在我的WinUI桌面应用程序中实现配置文件。我一直得到以下错误。

System.IO.FileNotFoundException: 'The configuration file 'appsettings.json' was not found and is not optional. The physical path is 'C:\Windows\SysWOW64\appsettings.json'.'

字符串
我已经将构建操作设置为内容,并将复制到输出直接设置为更新的复制。但是没有任何效果。
Appsettings properties
我的App.xaml.cs代码是。

using Microsoft.Extensions.Hosting;
using Microsoft.UI.Xaml;

namespace ManagementSystem.Web
{
    public partial class App : Microsoft.UI.Xaml.Application
    {
        public App()
        {
            this.InitializeComponent();
        }

    protected override void OnLaunched(LaunchActivatedEventArgs args)
    {
        IHost host = CreateHostBuilder(args).Build();

        using (IServiceScope scope = host.Services.CreateScope())
        {
            IServiceProvider services = scope.ServiceProvider;
            MainWindow MainWindow = services.GetRequiredService<MainWindow>();

            MainWindow.Activate();
        }
    }

    private static IHostBuilder CreateHostBuilder(LaunchActivatedEventArgs args) =>
        Host.CreateDefaultBuilder()
            .ConfigureAppConfiguration((_, config) =>
            {
                config.SetBasePath(Directory.GetCurrentDirectory());
                config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
            })
            .ConfigureServices((_, services) =>
            {
                services.AddOptions();
                services.ConfigureServices();
            });
}


我不知道为什么会发生这种情况。我试着在谷歌上搜索它,但我找不到任何关于为什么会发生这种情况的东西。

vnjpjtjt

vnjpjtjt1#

经过一番搜索,我找到了解决问题的方法。
在将Json文件添加到我的管道之前调用下面的代码行修复了这个问题。

config.SetBasePath(Package.Current.InstalledLocation.Path);

字符串

xjreopfe

xjreopfe2#

解决方案是将optional属性设置为true

IConfigurationBuilder builder = new ConfigurationBuilder() .AddJsonFile(Path.GetFullPath(System.IO.Path.Combine(Directory.GetCurrentDirectory(), @"..\..\sampleProject\sample\appsettings.json")), optional: true);

字符串

相关问题