From 5fa13459d367bc5e3248a8b1447f4f56354e1fae Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 22 May 2017 18:55:09 -0400 Subject: show friendly error when running install.exe from within zip file --- release-notes.md | 8 +++++--- src/StardewModdingAPI.Installer/InteractiveInstaller.cs | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/release-notes.md b/release-notes.md index 3bf68a1e..c654e408 100644 --- a/release-notes.md +++ b/release-notes.md @@ -14,9 +14,11 @@ For mod developers: See [log](https://github.com/Pathoschild/SMAPI/compare/1.13.1...1.14). For players: -* SMAPI now shows a friendly error when it can't detect the game. -* SMAPI now shows a friendly error when you have Stardew Valley 1.11 or earlier (which aren't compatible). -* SMAPI now shows a friendly error if a mod dependency is missing (if it's listed in the mod's manifest). +* SMAPI now shows friendly errors when... + * it can't detect the game; + * a mod dependency is missing (if it's listed in the mod manifest); + * you have Stardew Valley 1.11 or earlier (which aren't compatible); + * you run `install.exe` from within the downloaded zip file. * Fixed "unknown mod" deprecation warnings by improving how SMAPI detects the mod using the event. For modders: diff --git a/src/StardewModdingAPI.Installer/InteractiveInstaller.cs b/src/StardewModdingAPI.Installer/InteractiveInstaller.cs index 01f7a01f..43cb7d70 100644 --- a/src/StardewModdingAPI.Installer/InteractiveInstaller.cs +++ b/src/StardewModdingAPI.Installer/InteractiveInstaller.cs @@ -158,7 +158,10 @@ namespace StardewModdingApi.Installer ****/ if (!packageDir.Exists) { - this.PrintError($"The 'internal/{platform}' package folder is missing (should be at {packageDir})."); + this.PrintError(platform == Platform.Windows && packageDir.FullName.Contains(Path.GetTempPath()) && packageDir.FullName.Contains(".zip") + ? "The installer is missing some files. It looks like you're running the installer from inside the downloaded zip; make sure you unzip the downloaded file first, then run the installer from the unzipped folder." + : $"The 'internal/{platform}' package folder is missing (should be at {packageDir})." + ); Console.ReadLine(); return; } -- cgit