summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/release-notes.md4
-rw-r--r--src/SMAPI.Installer/InteractiveInstaller.cs31
2 files changed, 19 insertions, 16 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md
index b697cd2b..b25be131 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -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).
-->
+## Upcoming release
+* For players:
+ * Fixed installer leaving unneeded `StardewModdingAPI-x64.exe` file in the game folder.
+
## 3.10
Released 03 May 2021 for Stardew Valley 1.5.4 or later. See [release highlights](https://www.patreon.com/posts/50764911).
diff --git a/src/SMAPI.Installer/InteractiveInstaller.cs b/src/SMAPI.Installer/InteractiveInstaller.cs
index 83ecd257..55e9c064 100644
--- a/src/SMAPI.Installer/InteractiveInstaller.cs
+++ b/src/SMAPI.Installer/InteractiveInstaller.cs
@@ -45,6 +45,7 @@ namespace StardewModdingApi.Installer
yield return GetInstallPath("StardewModdingAPI.exe.mdb"); // Linux/macOS only
yield return GetInstallPath("StardewModdingAPI.pdb"); // Windows only
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("steam_appid.txt");
@@ -424,25 +425,23 @@ namespace StardewModdingApi.Installer
this.RecursiveCopy(sourceEntry, paths.GameDir);
}
- if (isWindows64Bit)
+ // handle 64-bit file
{
- this.PrintDebug("Making SMAPI 64-bit...");
- FileInfo x64Executable = new FileInfo(Path.Combine(paths.BundleDir.FullName, "StardewModdingAPI-x64.exe"));
- if (x64Executable.Exists)
+ FileInfo x64Executable = new FileInfo(Path.Combine(paths.GameDir.FullName, "StardewModdingAPI-x64.exe"));
+ if (isWindows64Bit)
{
- string targetName = "StardewModdingAPI.exe";
- this.InteractivelyDelete(Path.Combine(paths.GameDir.FullName, targetName));
- this.InteractivelyDelete(Path.Combine(paths.GameDir.FullName, x64Executable.Name));
-
- this.RecursiveCopy(x64Executable, paths.GameDir);
- File.Move(Path.Combine(paths.GamePath, x64Executable.Name), Path.Combine(paths.GamePath, targetName));
- }
- else
- {
- this.PrintError($"Oops! Could not find the required '{x64Executable.Name}' installer file. SMAPI was unable to install correctly.");
- Console.ReadLine();
- return;
+ this.PrintDebug("Making SMAPI 64-bit...");
+ if (x64Executable.Exists)
+ {
+ string targetPath = Path.Combine(paths.GameDir.FullName, "StardewModdingAPI.exe");
+ this.InteractivelyDelete(targetPath);
+ x64Executable.MoveTo(targetPath);
+ }
+ else
+ this.PrintError($"Oops! Could not find the required '{x64Executable.Name}' installer file. SMAPI may not work correctly.");
}
+ else if (x64Executable.Exists)
+ x64Executable.Delete();
}
// replace mod launcher (if possible)