Compare commits

...

24 Commits

Author SHA1 Message Date
JustArchi
e31f194938 Misc 2020-11-26 18:24:31 +01:00
JustArchi
8aeee1e238 Allow retry in mutex acquire process 2020-11-26 18:22:55 +01:00
dependabot-preview[bot]
0a25ee9197 Bump wiki from 9ccf1b4 to 2755a49
Bumps [wiki](https://github.com/JustArchiNET/ArchiSteamFarm.wiki) from `9ccf1b4` to `2755a49`.
- [Release notes](https://github.com/JustArchiNET/ArchiSteamFarm.wiki/releases)
- [Commits](9ccf1b4073...2755a49842)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-26 16:48:26 +00:00
GitHub Action
c83c86592a Automatic translations update 2020-11-26 02:09:36 +00:00
dependabot-preview[bot]
f5300ecdf1 Bump ASF-ui from 0586542 to 3b62205
Bumps [ASF-ui](https://github.com/JustArchiNET/ASF-ui) from `0586542` to `3b62205`.
- [Release notes](https://github.com/JustArchiNET/ASF-ui/releases)
- [Commits](0586542cb0...3b622058ab)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-26 01:54:00 +00:00
JustArchi
198db60c51 Misc 2020-11-25 21:15:42 +01:00
JustArchi
bb25c94aef Bump 2020-11-25 12:33:01 +01:00
JustArchi
d1ca1e9b2c Add a pre-container assembly verification for detecting failing plugins 2020-11-25 12:26:46 +01:00
JustArchi
178509eb21 Avoid loading assemblies in IPC when no plugins are active
Apart from small optimization, this avoids the problem of starting IPC server if one of the assemblies fail to load (as ASF will abort the rest of the plugins loading routine, and therefore no plugins will be loaded at all).
2020-11-25 11:52:02 +01:00
GitHub Action
2d6e8ed673 Automatic translations update 2020-11-25 02:09:37 +00:00
dependabot-preview[bot]
95eeba8e53 Bump ASF-ui from 7acc033 to 0586542
Bumps [ASF-ui](https://github.com/JustArchiNET/ASF-ui) from `7acc033` to `0586542`.
- [Release notes](https://github.com/JustArchiNET/ASF-ui/releases)
- [Commits](7acc033156...0586542cb0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-25 01:33:02 +00:00
JustArchi
f0fbf318f4 Bump 2020-11-24 17:40:34 +01:00
GitHub Action
4cb822cbf2 Automatic translations update 2020-11-24 02:09:33 +00:00
dependabot-preview[bot]
e1ad30ebe8 Bump wiki from f8ce64c to fb005a3
Bumps [wiki](https://github.com/JustArchiNET/ArchiSteamFarm.wiki) from `f8ce64c` to `fb005a3`.
- [Release notes](https://github.com/JustArchiNET/ArchiSteamFarm.wiki/releases)
- [Commits](f8ce64c006...fb005a3444)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-24 01:47:13 +00:00
dependabot-preview[bot]
63b92bd4a9 Bump ASF-ui from e5b334b to 7acc033
Bumps [ASF-ui](https://github.com/JustArchiNET/ASF-ui) from `e5b334b` to `7acc033`.
- [Release notes](https://github.com/JustArchiNET/ASF-ui/releases)
- [Commits](e5b334bc74...7acc033156)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-24 01:46:46 +00:00
GitHub Action
c5de5cb1af Automatic translations update 2020-11-23 02:09:42 +00:00
dependabot-preview[bot]
71cf55be3f Bump ASF-ui from 1f52d6a to e5b334b
Bumps [ASF-ui](https://github.com/JustArchiNET/ASF-ui) from `1f52d6a` to `e5b334b`.
- [Release notes](https://github.com/JustArchiNET/ASF-ui/releases)
- [Commits](1f52d6a635...e5b334bc74)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-23 01:37:43 +00:00
JustArchi
74a30a8215 Make GetOwnedGames display also profile-limited games 2020-11-22 18:16:32 +01:00
GitHub Action
db452a2da0 Automatic translations update 2020-11-22 02:09:24 +00:00
JustArchi
0b5d1211fa Bump 2020-11-21 19:07:08 +01:00
JustArchi
084388087e Revert "Make --ignore-unsupported-environment emit a warning instead of nothing"
This reverts commit dd1bb75b8a.
2020-11-21 18:30:49 +01:00
JustArchi
cbbd6fab2d Work around OS X limitations 2020-11-21 18:14:15 +01:00
JustArchi
d9e3496e5e Optimize csprojs and STD plugin publishing
thanks to @Vital7 for the idea
2020-11-21 18:09:05 +01:00
JustArchi
d896f16cbf Bump 2020-11-21 17:12:13 +01:00
17 changed files with 88 additions and 54 deletions

View File

@@ -133,9 +133,9 @@ jobs:
fi fi
# If we're including SteamTokenDumper plugin for this framework, copy it to output directory # If we're including SteamTokenDumper plugin for this framework, copy it to output directory
if [ -f "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/${STEAM_TOKEN_DUMPER_NAME}.dll" ]; then if [ -d "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}" ]; then
mkdir -p "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}" mkdir -p "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}"
cp "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/${STEAM_TOKEN_DUMPER_NAME}.dll" "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}" cp -pR "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/"* "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}"
fi fi
# Include .ico file for all platforms, since only Windows script can bundle it inside the exe # Include .ico file for all platforms, since only Windows script can bundle it inside the exe
@@ -208,12 +208,12 @@ jobs:
} }
# If we're including SteamTokenDumper plugin for this framework, copy it to output directory # If we're including SteamTokenDumper plugin for this framework, copy it to output directory
if (Test-Path "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\$env:STEAM_TOKEN_DUMPER_NAME.dll" -PathType Leaf) { if (Test-Path "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework" -PathType Container) {
if (!(Test-Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" -PathType Container)) { if (!(Test-Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" -PathType Container)) {
New-Item -ItemType Directory -Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" > $null New-Item -ItemType Directory -Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" > $null
} }
Copy-Item "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\$env:STEAM_TOKEN_DUMPER_NAME.dll" "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" Copy-Item "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\*" "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME"
} }
# Icon is available only in .NET Framework and .NET Core Windows build, we'll bundle the .ico file for other flavours # Icon is available only in .NET Framework and .NET Core Windows build, we'll bundle the .ico file for other flavours

View File

@@ -66,9 +66,9 @@ script:
fi fi
# If we're including SteamTokenDumper plugin for this framework, copy it to output directory # If we're including SteamTokenDumper plugin for this framework, copy it to output directory
if [ -f "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/${STEAM_TOKEN_DUMPER_NAME}.dll" ]; then if [ -d "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}" ]; then
mkdir -p "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}" mkdir -p "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}"
cp "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/${STEAM_TOKEN_DUMPER_NAME}.dll" "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}" cp -pR "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/"* "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}"
fi fi
# Include .ico file for all platforms, since only Windows script can bundle it inside the exe # Include .ico file for all platforms, since only Windows script can bundle it inside the exe

2
ASF-ui

Submodule ASF-ui updated: 1f52d6a635...3b622058ab

View File

@@ -4,12 +4,17 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0"> <PackageReference Include="ConfigureAwaitChecker.Analyzer" PrivateAssets="all" Version="4.0.0" />
<PrivateAssets>all</PrivateAssets> <PackageReference Include="Newtonsoft.Json" IncludeAssets="compile" Version="*" />
</PackageReference> <PackageReference Include="SteamKit2" IncludeAssets="compile" Version="*" />
<PackageReference Include="System.Composition.AttributedModel" IncludeAssets="compile" Version="*" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net48'">
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" IncludeAssets="compile" Version="*" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" /> <ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" ExcludeAssets="all" Private="false" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -4,12 +4,11 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0"> <PackageReference Include="ConfigureAwaitChecker.Analyzer" PrivateAssets="all" Version="4.0.0" />
<PrivateAssets>all</PrivateAssets> <PackageReference Include="System.Composition.AttributedModel" IncludeAssets="compile" Version="*" />
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" /> <ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" ExcludeAssets="all" Private="false" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -4,12 +4,18 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0"> <PackageReference Include="ConfigureAwaitChecker.Analyzer" PrivateAssets="all" Version="4.0.0" />
<PrivateAssets>all</PrivateAssets> <PackageReference Include="Newtonsoft.Json" IncludeAssets="compile" Version="*" />
</PackageReference> <PackageReference Include="SteamKit2" IncludeAssets="compile" Version="*" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" IncludeAssets="compile" Version="*" />
<PackageReference Include="System.Composition.AttributedModel" IncludeAssets="compile" Version="*" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net48'">
<PackageReference Include="System.Collections.Immutable" IncludeAssets="compile" Version="*" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" /> <ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" ExcludeAssets="all" Private="false" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -4,9 +4,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0"> <PackageReference Include="ConfigureAwaitChecker.Analyzer" PrivateAssets="all" Version="4.0.0" />
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.1.2" /> <PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.2" /> <PackageReference Include="MSTest.TestFramework" Version="2.1.2" />

View File

@@ -8,9 +8,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="AngleSharp.XPath" Version="1.1.7" /> <PackageReference Include="AngleSharp.XPath" Version="1.1.7" />
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0"> <PackageReference Include="ConfigureAwaitChecker.Analyzer" PrivateAssets="all" Version="4.0.0" />
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="CryptSharpStandard" Version="1.0.0" /> <PackageReference Include="CryptSharpStandard" Version="1.0.0" />
<PackageReference Include="Humanizer" Version="2.8.26" /> <PackageReference Include="Humanizer" Version="2.8.26" />
<PackageReference Include="JetBrains.Annotations" Version="2020.1.0" /> <PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
@@ -42,12 +40,8 @@
<PackageReference Include="Microsoft.AspNetCore.WebSockets" Version="2.2.1" /> <PackageReference Include="Microsoft.AspNetCore.WebSockets" Version="2.2.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="5.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="5.0.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="5.0.0" />
<Reference Include="System.Net.Http"> <Reference Include="System.Net.Http" HintPath="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Net.Http.dll" />
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Net.Http.dll</HintPath> <Reference Include="System.Security" HintPath="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Security.dll" />
</Reference>
<Reference Include="System.Security">
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Security.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -311,9 +311,10 @@ namespace ArchiSteamFarm {
// ReSharper disable once AccessToDisposedClosure // ReSharper disable once AccessToDisposedClosure
async () => await iPlayerService.CallAsync( async () => await iPlayerService.CallAsync(
HttpMethod.Get, "GetOwnedGames", args: new Dictionary<string, object>(3, StringComparer.Ordinal) { HttpMethod.Get, "GetOwnedGames", args: new Dictionary<string, object>(4, StringComparer.Ordinal) {
{ "include_appinfo", 1 }, { "include_appinfo", 1 },
{ "key", steamApiKey! }, { "key", steamApiKey! },
{ "skip_unvetted_apps", "0" },
{ "steamid", steamID } { "steamid", steamID }
} }
).ConfigureAwait(false) ).ConfigureAwait(false)

View File

@@ -248,11 +248,13 @@ namespace ArchiSteamFarm.IPC {
#endif #endif
// Add support for controllers declared in custom plugins // Add support for controllers declared in custom plugins
HashSet<Assembly>? assemblies = PluginsCore.LoadAssemblies(); if (PluginsCore.ActivePlugins?.Count > 0) {
HashSet<Assembly>? assemblies = PluginsCore.LoadAssemblies();
if (assemblies != null) { if (assemblies != null) {
foreach (Assembly assembly in assemblies) { foreach (Assembly assembly in assemblies) {
mvc.AddApplicationPart(assembly); mvc.AddApplicationPart(assembly);
}
} }
} }

View File

@@ -736,6 +736,10 @@ Tempo de execução: {1}</value>
<value>Resultado: {0}</value> <value>Resultado: {0}</value>
<comment>{0} will be replaced by generic result of various functions that use this string</comment> <comment>{0} will be replaced by generic result of various functions that use this string</comment>
</data> </data>
<data name="WarningUnsupportedEnvironment" xml:space="preserve">
<value>Você está tentando executar a variante {0} do ASF em um ambiente não suportado: {1}. Forneça o arguimento --ignore-unsupported-environment se você realmente sabe o que está fazendo.</value>
</data>
<data name="WarningUnknownCommandLineArgument" xml:space="preserve">
<value>Argumento de linha de comando desconhecido: {0}</value>
</data>
</root> </root>

View File

@@ -28,6 +28,7 @@ using System.Security.Cryptography;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading; using System.Threading;
using System.Threading.Tasks;
using ArchiSteamFarm.Helpers; using ArchiSteamFarm.Helpers;
using ArchiSteamFarm.Localization; using ArchiSteamFarm.Localization;
@@ -92,7 +93,7 @@ namespace ArchiSteamFarm {
} }
} }
internal static bool RegisterProcess() { internal static async Task<bool> RegisterProcess() {
if (SingleInstance != null) { if (SingleInstance != null) {
return false; return false;
} }
@@ -106,11 +107,24 @@ namespace ArchiSteamFarm {
uniqueName = "Global\\" + GetOsResourceName(nameof(SingleInstance)) + "-" + BitConverter.ToString(hashingAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(Directory.GetCurrentDirectory()))).Replace("-", ""); uniqueName = "Global\\" + GetOsResourceName(nameof(SingleInstance)) + "-" + BitConverter.ToString(hashingAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(Directory.GetCurrentDirectory()))).Replace("-", "");
} }
Mutex singleInstance = new(true, uniqueName, out bool result); Mutex? singleInstance = null;
for (byte i = 0; (i < WebBrowser.MaxTries) && (singleInstance == null); i++) {
if (i > 0) {
await Task.Delay(1000).ConfigureAwait(false);
}
singleInstance = new Mutex(true, uniqueName, out bool result);
if (result) {
break;
}
if (!result) {
singleInstance.Dispose(); singleInstance.Dispose();
singleInstance = null;
}
if (singleInstance == null) {
return false; return false;
} }

View File

@@ -101,6 +101,20 @@ namespace ArchiSteamFarm.Plugins {
ASF.ArchiLogger.LogGenericInfo(string.Format(CultureInfo.CurrentCulture, Strings.Initializing, nameof(Plugins))); ASF.ArchiLogger.LogGenericInfo(string.Format(CultureInfo.CurrentCulture, Strings.Initializing, nameof(Plugins)));
foreach (Assembly assembly in assemblies) {
ASF.ArchiLogger.LogGenericDebug(string.Format(CultureInfo.CurrentCulture, Strings.Initializing, assembly.FullName));
try {
// This call is bare minimum to verify if the assembly can load itself
assembly.GetTypes();
} catch (Exception e) {
ASF.ArchiLogger.LogGenericError(string.Format(CultureInfo.CurrentCulture, Strings.WarningFailedWithError, assembly.FullName));
ASF.ArchiLogger.LogGenericException(e);
return false;
}
}
ConventionBuilder conventions = new(); ConventionBuilder conventions = new();
conventions.ForTypesDerivedFrom<IPlugin>().Export<IPlugin>(); conventions.ForTypesDerivedFrom<IPlugin>().Export<IPlugin>();

View File

@@ -170,7 +170,8 @@ namespace ArchiSteamFarm {
ParseArgs(args); ParseArgs(args);
} }
bool uniqueInstance = OS.RegisterProcess(); bool uniqueInstance = await OS.RegisterProcess().ConfigureAwait(false);
Logging.InitCoreLoggers(uniqueInstance); Logging.InitCoreLoggers(uniqueInstance);
if (!uniqueInstance) { if (!uniqueInstance) {
@@ -185,17 +186,13 @@ namespace ArchiSteamFarm {
Console.Title = SharedInfo.ProgramIdentifier; Console.Title = SharedInfo.ProgramIdentifier;
ASF.ArchiLogger.LogGenericInfo(SharedInfo.ProgramIdentifier); ASF.ArchiLogger.LogGenericInfo(SharedInfo.ProgramIdentifier);
if (!OS.VerifyEnvironment()) { if (!IgnoreUnsupportedEnvironment) {
string errorMessage = string.Format(CultureInfo.CurrentCulture, Strings.WarningUnsupportedEnvironment, SharedInfo.BuildInfo.Variant, OS.Variant); if (!OS.VerifyEnvironment()) {
ASF.ArchiLogger.LogGenericError(string.Format(CultureInfo.CurrentCulture, Strings.WarningUnsupportedEnvironment, SharedInfo.BuildInfo.Variant, OS.Variant));
if (!IgnoreUnsupportedEnvironment) {
ASF.ArchiLogger.LogGenericError(errorMessage);
await Task.Delay(10000).ConfigureAwait(false); await Task.Delay(10000).ConfigureAwait(false);
return false; return false;
} }
ASF.ArchiLogger.LogGenericWarning(errorMessage);
} }
return true; return true;
@@ -290,7 +287,7 @@ namespace ArchiSteamFarm {
if (currentStringObjects.Count < defaultStringObjects.Count) { if (currentStringObjects.Count < defaultStringObjects.Count) {
float translationCompleteness = currentStringObjects.Count / (float) defaultStringObjects.Count; float translationCompleteness = currentStringObjects.Count / (float) defaultStringObjects.Count;
ASF.ArchiLogger.LogGenericInfo(string.Format(CultureInfo.CurrentCulture, Strings.TranslationIncomplete, CultureInfo.CurrentUICulture.Name, translationCompleteness.ToString("P1", CultureInfo.CurrentCulture))); ASF.ArchiLogger.LogGenericInfo(string.Format(CultureInfo.CurrentCulture, Strings.TranslationIncomplete, CultureInfo.CurrentUICulture.Name + " (" + CultureInfo.CurrentUICulture.EnglishName + ")", translationCompleteness.ToString("P1", CultureInfo.CurrentCulture)));
} }
return true; return true;

View File

@@ -1,6 +1,6 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<Version>5.0.0.4</Version> <Version>5.0.1.1</Version>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

View File

@@ -239,12 +239,12 @@ after_test:
} }
# If we're including SteamTokenDumper plugin for this framework, copy it to output directory # If we're including SteamTokenDumper plugin for this framework, copy it to output directory
if (Test-Path "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\$env:STEAM_TOKEN_DUMPER_NAME.dll" -PathType Leaf) { if (Test-Path "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework" -PathType Container) {
if (!(Test-Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" -PathType Container)) { if (!(Test-Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" -PathType Container)) {
New-Item -ItemType Directory -Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" > $null New-Item -ItemType Directory -Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" > $null
} }
Copy-Item "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\$env:STEAM_TOKEN_DUMPER_NAME.dll" "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" Copy-Item "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\*" "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME"
} }
# Icon is available only in .NET Framework and .NET Core Windows build, we'll bundle the .ico file for other flavours # Icon is available only in .NET Framework and .NET Core Windows build, we'll bundle the .ico file for other flavours

2
wiki

Submodule wiki updated: c9702b50e3...2755a49842