From 32a5cc8aa362ca09c9fb7f361c9ed753a28b1e5f Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Mon, 17 Feb 2025 12:27:00 +0800 Subject: [PATCH] Check for avalonia desktop windows version --- v2rayN/ServiceLib/Services/UpdateService.cs | 32 ++++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/v2rayN/ServiceLib/Services/UpdateService.cs b/v2rayN/ServiceLib/Services/UpdateService.cs index 428a136b..47112c8d 100644 --- a/v2rayN/ServiceLib/Services/UpdateService.cs +++ b/v2rayN/ServiceLib/Services/UpdateService.cs @@ -427,22 +427,32 @@ namespace ServiceLib.Services { if (Utils.IsWindows()) { - //Check for standalone windows .Net version - if (coreInfo?.CoreType == ECoreType.v2rayN && RuntimeInformation.ProcessArchitecture == Architecture.X64) - { - var runtimes = await Utils.GetCliWrapOutput("dotnet", "--list-runtimes"); - if (runtimes == null || runtimes.Contains("Microsoft.WindowsDesktop.App 8") == false) - { - return coreInfo?.DownloadUrlWin64?.Replace(".zip", "-SelfContained.zip"); - } - } - - return RuntimeInformation.ProcessArchitecture switch + var url = RuntimeInformation.ProcessArchitecture switch { Architecture.Arm64 => coreInfo?.DownloadUrlWinArm64, Architecture.X64 => coreInfo?.DownloadUrlWin64, _ => null, }; + + if (coreInfo?.CoreType != ECoreType.v2rayN) + { + return url; + } + + //Check for standalone windows .Net version + if (File.Exists(Path.Combine(Utils.GetBaseDirectory(), "wpfgfx_cor3.dll")) + && File.Exists(Path.Combine(Utils.GetBaseDirectory(), "D3DCompiler_47_cor3.dll"))) + { + return url?.Replace(".zip", "-SelfContained.zip"); + } + + //Check for avalonia desktop windows version + if (File.Exists(Path.Combine(Utils.GetBaseDirectory(), "libHarfBuzzSharp.dll"))) + { + return url?.Replace(".zip", "-desktop.zip"); + } + + return url; } else if (Utils.IsLinux()) {