diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Shell/ShellLinkInterop.cs b/src/Snap.Hutao/Snap.Hutao/Core/Shell/ShellLinkInterop.cs index 7b3e7690..eb0edf3a 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/Shell/ShellLinkInterop.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/Shell/ShellLinkInterop.cs @@ -20,9 +20,18 @@ internal sealed partial class ShellLinkInterop : IShellLinkInterop public async ValueTask TryCreateDesktopShoutcutForElevatedLaunchAsync() { - Uri elevatedLauncherUri = "ms-appx:///Snap.Hutao.Elevated.Launcher.exe".ToUri(); - StorageFile launcherFile = await StorageFile.GetFileFromApplicationUriAsync(elevatedLauncherUri); - string elevatedLauncherPath = launcherFile.Path; + string elevatedLauncherPath = Path.Combine(runtimeOptions.DataFolder, "Snap.Hutao.Elevated.Launcher.exe"); + + try + { + Uri elevatedLauncherUri = "ms-appx:///Snap.Hutao.Elevated.Launcher.exe".ToUri(); + StorageFile launcherFile = await StorageFile.GetFileFromApplicationUriAsync(elevatedLauncherUri); + await launcherFile.OverwriteCopyAsync(elevatedLauncherPath).ConfigureAwait(false); + } + catch + { + return false; + } return UnsafeTryCreateDesktopShoutcutForElevatedLaunch(elevatedLauncherPath); }