fix installer leaving unneeded StardewModdingAPI-x64.exe file in installer

This commit is contained in:
Jesse Plamondon-Willard 2021-05-03 19:42:30 -04:00
parent 5d3d919d49
commit 8d9d8341cd
No known key found for this signature in database
GPG Key ID: CF8B1456B3E29F49
2 changed files with 19 additions and 16 deletions

View File

@ -7,6 +7,10 @@
* Migrated to Harmony 2.0 (see [_migrate to Harmony 2.0_](https://stardewvalleywiki.com/Modding:Migrate_to_Harmony_2.0) for more info). * Migrated to Harmony 2.0 (see [_migrate to Harmony 2.0_](https://stardewvalleywiki.com/Modding:Migrate_to_Harmony_2.0) for more info).
--> -->
## Upcoming release
* For players:
* Fixed installer leaving unneeded `StardewModdingAPI-x64.exe` file in the game folder.
## 3.10 ## 3.10
Released 03 May 2021 for Stardew Valley 1.5.4 or later. See [release highlights](https://www.patreon.com/posts/50764911). Released 03 May 2021 for Stardew Valley 1.5.4 or later. See [release highlights](https://www.patreon.com/posts/50764911).

View File

@ -45,6 +45,7 @@ namespace StardewModdingApi.Installer
yield return GetInstallPath("StardewModdingAPI.exe.mdb"); // Linux/macOS only yield return GetInstallPath("StardewModdingAPI.exe.mdb"); // Linux/macOS only
yield return GetInstallPath("StardewModdingAPI.pdb"); // Windows only yield return GetInstallPath("StardewModdingAPI.pdb"); // Windows only
yield return GetInstallPath("StardewModdingAPI.xml"); yield return GetInstallPath("StardewModdingAPI.xml");
yield return GetInstallPath("StardewModdingAPI-x64.exe"); // not normally added to game folder, but may be mistakenly added by a manual install
yield return GetInstallPath("smapi-internal"); yield return GetInstallPath("smapi-internal");
yield return GetInstallPath("steam_appid.txt"); yield return GetInstallPath("steam_appid.txt");
@ -424,25 +425,23 @@ namespace StardewModdingApi.Installer
this.RecursiveCopy(sourceEntry, paths.GameDir); this.RecursiveCopy(sourceEntry, paths.GameDir);
} }
if (isWindows64Bit) // handle 64-bit file
{ {
this.PrintDebug("Making SMAPI 64-bit..."); FileInfo x64Executable = new FileInfo(Path.Combine(paths.GameDir.FullName, "StardewModdingAPI-x64.exe"));
FileInfo x64Executable = new FileInfo(Path.Combine(paths.BundleDir.FullName, "StardewModdingAPI-x64.exe")); if (isWindows64Bit)
if (x64Executable.Exists)
{ {
string targetName = "StardewModdingAPI.exe"; this.PrintDebug("Making SMAPI 64-bit...");
this.InteractivelyDelete(Path.Combine(paths.GameDir.FullName, targetName)); if (x64Executable.Exists)
this.InteractivelyDelete(Path.Combine(paths.GameDir.FullName, x64Executable.Name)); {
string targetPath = Path.Combine(paths.GameDir.FullName, "StardewModdingAPI.exe");
this.RecursiveCopy(x64Executable, paths.GameDir); this.InteractivelyDelete(targetPath);
File.Move(Path.Combine(paths.GamePath, x64Executable.Name), Path.Combine(paths.GamePath, targetName)); x64Executable.MoveTo(targetPath);
} }
else else
{ this.PrintError($"Oops! Could not find the required '{x64Executable.Name}' installer file. SMAPI may not work correctly.");
this.PrintError($"Oops! Could not find the required '{x64Executable.Name}' installer file. SMAPI was unable to install correctly.");
Console.ReadLine();
return;
} }
else if (x64Executable.Exists)
x64Executable.Delete();
} }
// replace mod launcher (if possible) // replace mod launcher (if possible)