diff --git a/.travis.yml b/.travis.yml index 38831e5b5..378b94812 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,7 @@ branches: group: travis_latest # ASF is based on .NET Core platform -dotnet: 2.1.105 +dotnet: 2.1.300 mono: none env: @@ -24,7 +24,7 @@ env: - CONFIGURATION: Release - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 - - NET_CORE_VERSION: netcoreapp2.0 + - NET_CORE_VERSION: netcoreapp2.1 - VARIANTS="generic linux-arm linux-x64 osx-x64 win-x64" # NOTE: When modifying variants, don't forget to update ASF_VARIANT definitions in SharedInfo.cs! before_script: @@ -46,7 +46,8 @@ script: publish() { if [ "$1" = 'generic' ]; then - dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/${1}" /nologo "/p:ASFVariant=$1" + # TODO: Workaround https://github.com/mono/linker/issues/286 until it's resolved + dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/${1}" /nologo "/p:ASFVariant=$1" "/p:LinkDuringPublish=false" else dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/${1}" -r "$1" /nologo "/p:ASFVariant=$1" "/p:CrossGenDuringPublish=false" fi @@ -60,6 +61,7 @@ script: for variant in $VARIANTS; do publish "$variant" & done + wait matrix: diff --git a/ArchiSteamFarm.Tests/ArchiSteamFarm.Tests.csproj b/ArchiSteamFarm.Tests/ArchiSteamFarm.Tests.csproj index 76a3e188f..8c6c28233 100644 --- a/ArchiSteamFarm.Tests/ArchiSteamFarm.Tests.csproj +++ b/ArchiSteamFarm.Tests/ArchiSteamFarm.Tests.csproj @@ -15,7 +15,7 @@ https://github.com/JustArchi/ArchiSteamFarm Git https://github.com/JustArchi/ArchiSteamFarm.git - netcoreapp2.0 + netcoreapp2.1 diff --git a/ArchiSteamFarm/ArchiSteamFarm.csproj b/ArchiSteamFarm/ArchiSteamFarm.csproj index 3d0aec4cd..5926f25f1 100644 --- a/ArchiSteamFarm/ArchiSteamFarm.csproj +++ b/ArchiSteamFarm/ArchiSteamFarm.csproj @@ -2,14 +2,14 @@ ASF.ico - 3.1.3.5 + 3.2.0.0 JustArchi JustArchi true Copyright © ArchiSteamFarm 2015-2018 ASF is an application that allows you to farm steam cards using multiple steam accounts simultaneously. none - 3.1.3.5 + 3.2.0.0 latest Exe @@ -20,7 +20,7 @@ https://github.com/JustArchi/ArchiSteamFarm.git linux-arm;linux-x64;osx-x64;win-x64 false - netcoreapp2.0;net472 + netcoreapp2.1;net472 @@ -43,7 +43,7 @@ - + diff --git a/ArchiSteamFarm/GlobalConfig.cs b/ArchiSteamFarm/GlobalConfig.cs index 4b7f7be91..7aac43993 100644 --- a/ArchiSteamFarm/GlobalConfig.cs +++ b/ArchiSteamFarm/GlobalConfig.cs @@ -37,8 +37,6 @@ namespace ArchiSteamFarm { internal const ushort DefaultIPCPort = 1242; internal const byte DefaultLoginLimiterDelay = 10; - private const ProtocolTypes DefaultSteamProtocols = ProtocolTypes.Tcp | ProtocolTypes.Udp; - internal static readonly HashSet SalesBlacklist = new HashSet { 267420, 303700, 335590, 368020, 425280, 480730, 566020, 639900, 762800 }; // Steam Summer/Winter sales private static readonly SemaphoreSlim WriteSemaphore = new SemaphoreSlim(1, 1); @@ -119,7 +117,7 @@ namespace ArchiSteamFarm { internal ulong SteamOwnerID { get; private set; } [JsonProperty(Required = Required.DisallowNull)] - internal ProtocolTypes SteamProtocols { get; private set; } = DefaultSteamProtocols; + internal ProtocolTypes SteamProtocols { get; private set; } = ProtocolTypes.All; internal WebProxy WebProxy { get; private set; } @@ -287,18 +285,11 @@ namespace ArchiSteamFarm { return null; } - if (globalConfig.SteamProtocols == 0) { + if ((globalConfig.SteamProtocols == 0) || (globalConfig.SteamProtocols > ProtocolTypes.All)) { ASF.ArchiLogger.LogGenericError(string.Format(Strings.ErrorConfigPropertyInvalid, nameof(globalConfig.SteamProtocols), globalConfig.SteamProtocols)); return null; } - if (globalConfig.SteamProtocols.HasFlag(ProtocolTypes.WebSocket) && !OS.SupportsWebSockets()) { - globalConfig.SteamProtocols &= ~ProtocolTypes.WebSocket; - if (globalConfig.SteamProtocols == 0) { - globalConfig.SteamProtocols = DefaultSteamProtocols; - } - } - return globalConfig; } diff --git a/ArchiSteamFarm/OS.cs b/ArchiSteamFarm/OS.cs index cfe8fc427..e4aa5513f 100644 --- a/ArchiSteamFarm/OS.cs +++ b/ArchiSteamFarm/OS.cs @@ -21,7 +21,6 @@ using System; using System.IO; -using System.Net.WebSockets; using System.Runtime.InteropServices; using ArchiSteamFarm.Localization; @@ -39,17 +38,6 @@ namespace ArchiSteamFarm { } } - // TODO: We should really get rid of this once https://github.com/SteamRE/SteamKit/issues/455 or https://github.com/dotnet/corefx/issues/9503 is solved - internal static bool SupportsWebSockets() { - try { - using (new ClientWebSocket()) { - return true; - } - } catch (PlatformNotSupportedException) { - return false; - } - } - internal static void UnixSetFileAccessExecutable(string path) { if (string.IsNullOrEmpty(path) || !File.Exists(path)) { ASF.ArchiLogger.LogNullError(nameof(path)); diff --git a/ArchiSteamFarm/Program.cs b/ArchiSteamFarm/Program.cs index ed7b231a8..93cc98200 100644 --- a/ArchiSteamFarm/Program.cs +++ b/ArchiSteamFarm/Program.cs @@ -250,6 +250,7 @@ namespace ArchiSteamFarm { } if (GlobalConfig.BackgroundGCPeriod > 0) { + ASF.ArchiLogger.LogGenericWarning(string.Format(Strings.WarningDeprecated, nameof(GlobalConfig.BackgroundGCPeriod), "COMPlus_GCLatencyLevel=0")); Hacks.EnableBackgroundGC(GlobalConfig.BackgroundGCPeriod); } diff --git a/ArchiSteamFarm/config/ASF.json b/ArchiSteamFarm/config/ASF.json index a06da3c1b..42640ca0f 100644 --- a/ArchiSteamFarm/config/ASF.json +++ b/ArchiSteamFarm/config/ASF.json @@ -23,7 +23,7 @@ "OptimizationMode": 0, "Statistics": true, "SteamOwnerID": 0, - "SteamProtocols": 3, + "SteamProtocols": 7, "UpdateChannel": 1, "UpdatePeriod": 24, "WebLimiterDelay": 200, diff --git a/Dockerfile.Service.arm b/Dockerfile.Service.arm index f157236f0..50f96ebef 100644 --- a/Dockerfile.Service.arm +++ b/Dockerfile.Service.arm @@ -1,12 +1,12 @@ -FROM microsoft/dotnet:2.0-sdk AS build-env -ENV NET_CORE_VERSION netcoreapp2.0 +FROM microsoft/dotnet:2.1-sdk AS build-env +ENV NET_CORE_VERSION netcoreapp2.1 WORKDIR /app COPY . ./ RUN dotnet --info && \ dotnet publish ArchiSteamFarm -c Release -f "$NET_CORE_VERSION" -o out /nologo /p:ASFVariant=generic && \ cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh" "ArchiSteamFarm/out/ArchiSteamFarm-Service.sh" -FROM microsoft/dotnet:2.0-runtime-stretch-arm32v7 +FROM microsoft/dotnet:2.1-runtime-stretch-slim-arm32v7 LABEL maintainer="JustArchi " EXPOSE 1242 WORKDIR /app diff --git a/Dockerfile.Service.x64 b/Dockerfile.Service.x64 index d57a20853..ed58a1f4f 100644 --- a/Dockerfile.Service.x64 +++ b/Dockerfile.Service.x64 @@ -1,12 +1,12 @@ -FROM microsoft/dotnet:2.0-sdk AS build-env -ENV NET_CORE_VERSION netcoreapp2.0 +FROM microsoft/dotnet:2.1-sdk AS build-env +ENV NET_CORE_VERSION netcoreapp2.1 WORKDIR /app COPY . ./ RUN dotnet --info && \ dotnet publish ArchiSteamFarm -c Release -f "$NET_CORE_VERSION" -o out /nologo /p:ASFVariant=generic && \ cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh" "ArchiSteamFarm/out/ArchiSteamFarm-Service.sh" -FROM microsoft/dotnet:2.0-runtime +FROM microsoft/dotnet:2.1-runtime-stretch-slim LABEL maintainer="JustArchi " EXPOSE 1242 WORKDIR /app diff --git a/Dockerfile.arm b/Dockerfile.arm index 3d545f31d..5a631211a 100644 --- a/Dockerfile.arm +++ b/Dockerfile.arm @@ -1,12 +1,12 @@ -FROM microsoft/dotnet:2.0-sdk AS build-env -ENV NET_CORE_VERSION netcoreapp2.0 +FROM microsoft/dotnet:2.1-sdk AS build-env +ENV NET_CORE_VERSION netcoreapp2.1 WORKDIR /app COPY . ./ RUN dotnet --info && \ dotnet publish ArchiSteamFarm -c Release -f "$NET_CORE_VERSION" -o out /nologo /p:ASFVariant=docker && \ cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh" "ArchiSteamFarm/out/ArchiSteamFarm.sh" -FROM microsoft/dotnet:2.0-runtime-stretch-arm32v7 +FROM microsoft/dotnet:2.1-runtime-stretch-slim-arm32v7 LABEL maintainer="JustArchi " EXPOSE 1242 WORKDIR /app diff --git a/Dockerfile.x64 b/Dockerfile.x64 index 1574e0798..95eb71774 100644 --- a/Dockerfile.x64 +++ b/Dockerfile.x64 @@ -1,12 +1,12 @@ -FROM microsoft/dotnet:2.0-sdk AS build-env -ENV NET_CORE_VERSION netcoreapp2.0 +FROM microsoft/dotnet:2.1-sdk AS build-env +ENV NET_CORE_VERSION netcoreapp2.1 WORKDIR /app COPY . ./ RUN dotnet --info && \ dotnet publish ArchiSteamFarm -c Release -f "$NET_CORE_VERSION" -o out /nologo /p:ASFVariant=docker && \ cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh" "ArchiSteamFarm/out/ArchiSteamFarm.sh" -FROM microsoft/dotnet:2.0-runtime +FROM microsoft/dotnet:2.1-runtime-stretch-slim LABEL maintainer="JustArchi " EXPOSE 1242 WORKDIR /app diff --git a/WebConfigGenerator/src/schema.js b/WebConfigGenerator/src/schema.js index d92d32ab4..b2fcb747b 100644 --- a/WebConfigGenerator/src/schema.js +++ b/WebConfigGenerator/src/schema.js @@ -1,7 +1,526 @@ import Validators from './validators'; export default { - 'V3.1.2.5+': { + 'V3.2.0.0+': { + asf: [ + { + legend: 'schema.basic', + fields: [ + { + label: 'SteamOwnerID', + field: 's_SteamOwnerID', + placeholder: '0', + type: 'InputText', + description: 'schema.generic.steamid64', + validator: Validators.steamid + } + ] + }, + { + legend: 'schema.trading', + advanced: true, + fields: [ + { + label: 'MaxTradeHoldDuration', + field: 'MaxTradeHoldDuration', + placeholder: 15, + type: 'InputNumber', + validator: Validators.byte + } + ] + }, + { + legend: 'schema.customization', + advanced: true, + fields: [ + { + type: 'InputCheckbox', + field: 'AutoRestart', + label: 'AutoRestart', + defaultValue: true + }, + { + label: 'Blacklist', + field: 'Blacklist', + type: 'InputSet', + validator: Validators.uint + }, + { + field: 'CommandPrefix', + label: 'CommandPrefix', + type: 'InputText', + placeholder: '!' + }, + { + label: 'CurrentCulture', + field: 'CurrentCulture', + type: 'InputText', + placeholder: 'en-US' + }, + { + type: 'InputCheckbox', + field: 'Statistics', + label: 'Statistics', + defaultValue: true + } + ] + }, + { + legend: 'schema.remote_access', + advanced: true, + fields: [ + { + label: 'Headless', + field: 'Headless', + defaultValue: false, + type: 'InputCheckbox' + }, + { + label: 'IPC', + field: 'IPC', + defaultValue: false, + type: 'InputCheckbox' + }, + { + label: 'IPCPassword', + field: 'IPCPassword', + placeholder: '', + type: 'InputPassword' + }, + { + label: 'IPCPrefixes', + field: 'IPCPrefixes', + type: 'InputSet' + } + ] + }, + { + legend: 'schema.connection', + advanced: true, + fields: [ + { + label: 'ConnectionTimeout', + field: 'ConnectionTimeout', + placeholder: 60, + type: 'InputNumber', + validator: Validators.byte + }, + { + type: 'InputFlag', + label: 'SteamProtocols', + field: 'SteamProtocols', + values: [ + { value: 0, name: 'None' }, + { value: 1, name: 'TCP' }, + { value: 2, name: 'UDP' }, + { value: 4, name: 'WebSocket' } + ], + defaultValue: 0, + advanced: true + }, + { + label: 'WebProxy', + field: 'WebProxy', + placeholder: '', + type: 'InputText' + }, + { + label: 'WebProxyPassword', + field: 'WebProxyPassword', + placeholder: '', + type: 'InputPassword' + }, + { + label: 'WebProxyUsername', + field: 'WebProxyUsername', + placeholder: '', + type: 'InputText' + } + ] + }, + { + legend: 'schema.performance', + advanced: true, + fields: [ + { + label: 'ConfirmationsLimiterDelay', + field: 'ConfirmationsLimiterDelay', + type: 'InputNumber', + placeholder: 10, + validator: Validators.byte + }, + { + label: 'FarmingDelay', + field: 'FarmingDelay', + type: 'InputNumber', + placeholder: 15, + validator: Validators.byte + }, + { + label: 'GiftsLimiterDelay', + field: 'GiftsLimiterDelay', + type: 'InputNumber', + placeholder: 1, + validator: Validators.byte + }, + { + label: 'IdleFarmingPeriod', + field: 'IdleFarmingPeriod', + type: 'InputNumber', + placeholder: 8, + validator: Validators.byte + }, + { + label: 'InventoryLimiterDelay', + field: 'InventoryLimiterDelay', + type: 'InputNumber', + placeholder: 3, + validator: Validators.byte + }, + { + label: 'LoginLimiterDelay', + field: 'LoginLimiterDelay', + type: 'InputNumber', + placeholder: 10, + validator: Validators.byte + }, + { + label: 'MaxFarmingTime', + field: 'MaxFarmingTime', + type: 'InputNumber', + placeholder: 10, + validator: Validators.byte + }, + { + label: 'OptimizationMode', + field: 'OptimizationMode', + type: 'InputSelect', + options: [ + { value: 0, name: 'MaxPerformance' }, + { value: 1, name: 'MinMemoryUsage' } + ], + defaultValue: 0 + }, + { + label: 'WebLimiterDelay', + field: 'WebLimiterDelay', + type: 'InputNumber', + placeholder: 200, + validator: Validators.ushort + } + ] + }, + { + legend: 'schema.updates', + advanced: true, + fields: [ + { + label: 'UpdateChannel', + field: 'UpdateChannel', + type: 'InputSelect', + options: [ + { value: 0, name: 'None' }, + { value: 1, name: 'Stable' }, + { value: 2, name: 'Experimental' } + ], + defaultValue: 1 + }, + { + label: 'UpdatePeriod', + field: 'UpdatePeriod', + type: 'InputNumber', + placeholder: 24, + validator: Validators.byte + } + ] + }, + { + legend: 'schema.advanced', + advanced: true, + fields: [ + { + label: 'Debug', + field: 'Debug', + defaultValue: false, + type: 'InputCheckbox' + } + ] + } + ], + bot: [ + { + legend: 'schema.basic', + fields: [ + { + type: 'InputText', + label: 'Name', + field: 'name', + required: true, + description: 'schema.bot.name.description' + }, + { + type: 'InputText', + label: 'SteamLogin', + field: 'SteamLogin', + description: 'schema.bot.SteamLogin.description' + }, + { + type: 'InputPassword', + label: 'SteamPassword', + field: 'SteamPassword', + description: 'schema.bot.SteamPassword.description' + }, + { + type: 'InputCheckbox', + label: 'Enabled', + field: 'Enabled', + defaultValue: false + }, + { + type: 'InputCheckbox', + label: 'Paused', + field: 'Paused', + defaultValue: false, + advanced: true + }, + { + type: 'InputText', + label: 'SteamParentalPIN', + field: 'SteamParentalPIN', + placeholder: 0, + validator: Validators.parentalPIN, + advanced: true + }, + { + type: 'InputFlag', + label: 'BotBehaviour', + field: 'BotBehaviour', + values: [ + { value: 0, name: 'None' }, + { value: 1, name: 'RejectInvalidFriendInvites' }, + { value: 2, name: 'RejectInvalidTrades' }, + { value: 4, name: 'RejectInvalidGroupInvites' } + ], + defaultValue: 0, + advanced: true + } + ] + }, + { + legend: 'schema.access', + advanced: true, + fields: [ + { + type: 'InputText', + label: 'SteamMasterClanID', + field: 's_SteamMasterClanID', + placeholder: 0, + validator: Validators.masterClan + }, + { + type: 'InputMap', + label: 'SteamUserPermissions', + field: 'SteamUserPermissions', + keyPlaceholder: 'SteamID64', + values: [ + { value: 0, name: 'None' }, + { value: 1, name: 'FamilySharing' }, + { value: 2, name: 'Operator' }, + { value: 3, name: 'Master' } + ], + defaultValue: 0, + keyValidator: Validators.steamid + } + ] + }, + { + legend: 'schema.trading', + advanced: true, + fields: [ + { + type: 'InputCheckbox', + label: 'AcceptGifts', + field: 'AcceptGifts', + defaultValue: false + }, + { + type: 'InputText', + label: 'SteamTradeToken', + field: 'SteamTradeToken', + validator: Validators.tradeToken + }, + { + type: 'InputFlag', + label: 'TradingPreferences', + field: 'TradingPreferences', + values: [ + { value: 0, name: 'None' }, + { value: 1, name: 'AcceptDonations' }, + { value: 2, name: 'SteamTradeMatcher' }, + { value: 4, name: 'MatchEverything' }, + { value: 8, name: 'DontAcceptBotTrades' } + ], + defaultValue: 0 + }, + { + type: 'InputSet', + label: 'LootableTypes', + field: 'LootableTypes', + values: [ + { value: 0, name: 'Unknown' }, + { value: 1, name: 'BoosterPack' }, + { value: 2, name: 'Emoticon' }, + { value: 3, name: 'FoilTradingCard' }, + { value: 4, name: 'ProfileBackground' }, + { value: 5, name: 'TradingCard' }, + { value: 6, name: 'SteamGems' } + ], + defaultValue: 0 + }, + { + type: 'InputSet', + label: 'MatchableTypes', + field: 'MatchableTypes', + values: [ + { value: 0, name: 'Unknown' }, + { value: 1, name: 'BoosterPack' }, + { value: 2, name: 'Emoticon' }, + { value: 3, name: 'FoilTradingCard' }, + { value: 4, name: 'ProfileBackground' }, + { value: 5, name: 'TradingCard' }, + { value: 6, name: 'SteamGems' } + ], + defaultValue: 0 + } + ] + }, + { + legend: 'schema.farming', + advanced: true, + fields: [ + { + label: 'HoursUntilCardDrops', + field: 'HoursUntilCardDrops', + type: 'InputNumber', + placeholder: 3, + validator: Validators.byte + }, + { + type: 'InputSelect', + label: 'FarmingOrder', + field: 'FarmingOrder', + options: [ + { value: 0, name: 'Unordered' }, + { value: 1, name: 'AppIDsAscending' }, + { value: 2, name: 'AppIDsDescending' }, + { value: 3, name: 'CardDropsAscending' }, + { value: 4, name: 'CardDropsDescending' }, + { value: 5, name: 'HoursAscending' }, + { value: 6, name: 'HoursDescending' }, + { value: 7, name: 'NamesAscending' }, + { value: 8, name: 'NamesDescending' }, + { value: 9, name: 'Random' }, + { value: 10, name: 'BadgeLevelsAscending' }, + { value: 11, name: 'BadgeLevelsDescending' }, + { value: 12, name: 'RedeemDateTimesAscending' }, + { value: 13, name: 'RedeemDateTimesDescending' } + ], + defaultValue: 0 + }, + { + type: 'InputNumber', + label: 'SendTradePeriod', + field: 'SendTradePeriod', + placeholder: 0, + validator: Validators.byte + }, + { + type: 'InputCheckbox', + label: 'AutoSteamSaleEvent', + field: 'AutoSteamSaleEvent', + defaultValue: false + }, + { + type: 'InputCheckbox', + label: 'FarmOffline', + field: 'FarmOffline', + defaultValue: false + }, + { + type: 'InputCheckbox', + label: 'HandleOfflineMessages', + field: 'HandleOfflineMessages', + defaultValue: false + }, + { + type: 'InputCheckbox', + label: 'IdlePriorityQueueOnly', + field: 'IdlePriorityQueueOnly', + defaultValue: false + }, + { + type: 'InputCheckbox', + label: 'IdleRefundableGames', + field: 'IdleRefundableGames', + defaultValue: true + }, + { + type: 'InputCheckbox', + label: 'SendOnFarmingFinished', + field: 'SendOnFarmingFinished', + defaultValue: false + }, + { + type: 'InputCheckbox', + label: 'ShutdownOnFarmingFinished', + field: 'ShutdownOnFarmingFinished', + defaultValue: false + } + ] + }, + { + legend: 'schema.customization', + advanced: true, + fields: [ + { + type: 'InputCheckbox', + label: 'DismissInventoryNotifications', + field: 'DismissInventoryNotifications', + defaultValue: false + }, + { + type: 'InputFlag', + label: 'RedeemingPreferences', + field: 'RedeemingPreferences', + values: [ + { value: 0, name: 'None' }, + { value: 1, name: 'Forwarding' }, + { value: 2, name: 'Distributing' }, + { value: 4, name: 'KeepMissingGames' } + ], + defaultValue: 0 + }, + { + type: 'InputSet', + label: 'GamesPlayedWhileIdle', + field: 'GamesPlayedWhileIdle', + validator: Validators.uint + }, + { + type: 'InputText', + label: 'CustomGamePlayedWhileFarming', + field: 'CustomGamePlayedWhileFarming' + }, + { + type: 'InputText', + label: 'CustomGamePlayedWhileIdle', + field: 'CustomGamePlayedWhileIdle' + } + ] + } + ] + }, + 'V3.1.2.5-V3.1.3.4': { asf: [ { legend: 'schema.basic', diff --git a/appveyor.yml b/appveyor.yml index c96b5978f..387d9f957 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -14,7 +14,7 @@ clone_depth: 10 environment: DOTNET_CLI_TELEMETRY_OPTOUT: true DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true - NET_CORE_VERSION: netcoreapp2.0 + NET_CORE_VERSION: netcoreapp2.1 NET_FRAMEWORK_VERSION: net472 SINGLE_VARIANTS: generic-netf # NOTE: When modifying variants, don't forget to update ASF_VARIANT definitions in SharedInfo.cs! VARIANTS: generic linux-arm linux-x64 osx-x64 win-x64 # NOTE: When modifying variants, don't forget to update ASF_VARIANT definitions in SharedInfo.cs! @@ -91,7 +91,8 @@ after_test: } if ($variant -like 'generic*') { - dotnet publish ArchiSteamFarm -c "$env:CONFIGURATION" -f "$targetFramework" -o "out\$variant" /nologo "/p:ASFVariant=$variant" + # TODO: Workaround https://github.com/mono/linker/issues/286 until it's resolved + dotnet publish ArchiSteamFarm -c "$env:CONFIGURATION" -f "$targetFramework" -o "out\$variant" /nologo "/p:ASFVariant=$variant" "/p:LinkDuringPublish=false" } else { dotnet publish ArchiSteamFarm -c "$env:CONFIGURATION" -f "$targetFramework" -o "out\$variant" -r "$variant" /nologo "/p:ASFVariant=$variant" "/p:CrossGenDuringPublish=false" } diff --git a/wiki b/wiki index 0d126d9a0..5fa90d03a 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 0d126d9a09fff31a7860ddbe9ad05ccffe51c480 +Subproject commit 5fa90d03a5b8febf321ab214210c9fee82ecd8c9