mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-08-18 15:33:33 +08:00
45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
using Avalonia.Markup.Xaml;
|
|
using LanDesktopPLONDS.Installer.Services;
|
|
using LanDesktopPLONDS.Installer.ViewModels;
|
|
using LanDesktopPLONDS.Installer.Views;
|
|
using LanMountainDesktop.Shared.Contracts.Privacy;
|
|
|
|
namespace LanDesktopPLONDS.Installer;
|
|
|
|
public partial class App : Application
|
|
{
|
|
public override void Initialize()
|
|
{
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
|
|
public override void OnFrameworkInitializationCompleted()
|
|
{
|
|
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
|
{
|
|
var privacyIdentity = new PrivacyDeviceIdentityProvider();
|
|
var installService = OnlineInstallService.CreateDefault(privacyIdentity);
|
|
var consentStore = new InstallerPrivacyConsentStore();
|
|
var vm = new MainWindowViewModel(installService, privacyIdentity, consentStore);
|
|
|
|
// Task 2: 解析 --install-path 参数(提权重启后由管理员进程传入)
|
|
var installPath = MainWindowViewModel.ParseInstallPath(desktop.Args);
|
|
if (!string.IsNullOrWhiteSpace(installPath))
|
|
{
|
|
vm.InstallPath = installPath;
|
|
}
|
|
|
|
var mainWindow = new MainWindow
|
|
{
|
|
DataContext = vm
|
|
};
|
|
desktop.MainWindow = mainWindow;
|
|
mainWindow.Show();
|
|
}
|
|
|
|
base.OnFrameworkInitializationCompleted();
|
|
}
|
|
}
|