From f43aa16c6af31fe369abfb77da9d65282a347476 Mon Sep 17 00:00:00 2001 From: ff m Date: Tue, 7 Jan 2025 15:18:12 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix=20Linux=20=E4=B8=8D=E7=BC=96?= =?UTF-8?q?=E8=AF=91=20ASF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Commands/IDotNetPublishCommand.cs | 12 +++++++++--- src/BD.WTTS.Client.Tools.Publish/Constants.cs | 9 ++++++++- .../Helpers/GlobalDllImportResolver.cs | 2 ++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/BD.WTTS.Client.Tools.Publish/Commands/IDotNetPublishCommand.cs b/src/BD.WTTS.Client.Tools.Publish/Commands/IDotNetPublishCommand.cs index 28cb95a8434..bf50b85869f 100644 --- a/src/BD.WTTS.Client.Tools.Publish/Commands/IDotNetPublishCommand.cs +++ b/src/BD.WTTS.Client.Tools.Publish/Commands/IDotNetPublishCommand.cs @@ -5,6 +5,7 @@ using static BD.WTTS.Client.Tools.Publish.Helpers.DotNetCLIHelper; using static BD.WTTS.GlobalDllImportResolver; using JsonSerializer = System.Text.Json.JsonSerializer; +using System.Runtime.InteropServices; namespace BD.WTTS.Client.Tools.Publish.Commands; @@ -843,6 +844,7 @@ static PublishCommandArg SetPublishCommandArgumentList( arg.ReadyToRun = false; arg.Trimmed = false; arg.SelfContained = false; + arg.Architecture = architecture; // https://learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet-run // https://download.visualstudio.microsoft.com/download/pr/c1e2729e-ab96-4929-911d-bf0f24f06f47/1b2f39cbc4eb530e39cfe6f54ce78e45/aspnetcore-runtime-7.0.7-linux-x64.tar.gz // dotnet "Steam++.dll" -clt devtools @@ -889,7 +891,9 @@ record struct PublishCommandArg( bool? EnableMsixTooling = null, bool? GenerateAppxPackageOnBuild = null, bool? StripSymbols = null, - bool? CreatePackage = null) + bool? CreatePackage = null, + Architecture? Architecture = null + ) { string? _Configuration; @@ -1150,11 +1154,13 @@ static IEnumerable GetPluginNames(Platform platform) yield return AssemblyInfo.Accelerator; yield return AssemblyInfo.GameAccount; yield return AssemblyInfo.GameList; - yield return AssemblyInfo.ArchiSteamFarmPlus; yield return AssemblyInfo.Authenticator; + yield return AssemblyInfo.SteamIdleCard; if (platform == Platform.Windows) + { + yield return AssemblyInfo.ArchiSteamFarmPlus; yield return AssemblyInfo.GameTools; - yield return AssemblyInfo.SteamIdleCard; + } } /// diff --git a/src/BD.WTTS.Client.Tools.Publish/Constants.cs b/src/BD.WTTS.Client.Tools.Publish/Constants.cs index d726625bc2f..17dc1c86934 100644 --- a/src/BD.WTTS.Client.Tools.Publish/Constants.cs +++ b/src/BD.WTTS.Client.Tools.Publish/Constants.cs @@ -25,7 +25,7 @@ interface Constants static readonly string[] all_rids = new[] { "win-x64", "win-x86", "win-arm64", "osx-x64", "osx-arm64", - "linux-x64", "linux-arm64", + "linux-x64", "linux-arm64", "linux-loongarch64", }; static readonly string[] ignoreDirNames = new[] @@ -122,6 +122,7 @@ static string GetVersion() Architecture.Arm64 => "arm64", Architecture.X64 => "x64", Architecture.X86 => "x86", + Architecture.LoongArch64 => "loongarch64", _ => throw new ArgumentOutOfRangeException(nameof(architecture), architecture, null), }; @@ -160,6 +161,12 @@ static string GetVersion() case "arm64": info.Architecture = Architecture.Arm64; break; + case "loongarch64": + info.Architecture = Architecture.LoongArch64; + break; + case "riscv64": + info.Architecture = Architecture.RiscV64; + break; } } return info; diff --git a/src/BD.WTTS.Client/Helpers/GlobalDllImportResolver.cs b/src/BD.WTTS.Client/Helpers/GlobalDllImportResolver.cs index f3059e8301c..7dfdf5bf607 100644 --- a/src/BD.WTTS.Client/Helpers/GlobalDllImportResolver.cs +++ b/src/BD.WTTS.Client/Helpers/GlobalDllImportResolver.cs @@ -43,6 +43,8 @@ static string GetRID() Architecture.Arm64 => "linux-arm64", // 在 64 位 ARM 上运行的 Linux 发行版本,如 Raspberry Pi Model 3 及更高版本上的 Ubuntu 服务器 64 位 Architecture.Arm => "linux-arm", // 在 ARM 上运行的 Linux 发行版本,如 Raspberry Pi Model 2 及更高版本上的 Raspbian Architecture.Armv6 => "linux-armv6", + Architecture.LoongArch64 => "linux-loongarch64", // 在龙芯 LoongArch64 上运行的 Linux 发行版本 + Architecture.RiscV64 => "linux-riscv64", // 在 RISC-V 64 位上运行的 Linux 发行版本 _ => throw new PlatformNotSupportedException(), }; #else