diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml
index b97c62a..2022fbe 100644
--- a/.github/workflows/package.yml
+++ b/.github/workflows/package.yml
@@ -107,7 +107,7 @@ jobs:
persist-credentials: false
# Wheel Wizard runs the downloaded setup with --version and refuses it when the reported
- # version differs from the release tag, so a tag that was pushed without bumping every pinned
+ # version differs from the release tag, so a tag that was pushed without bumping the pinned
# version would ship an update nobody can install. Catch that before anything is published.
- name: Verify the tag matches the pinned setup version
env:
@@ -122,9 +122,7 @@ jobs:
status=1
fi
}
- check Launcher/WiiCompiled.Setup.Windows/Program.cs "public const string Version = \"$version\";"
- check Launcher/WiiCompiled.Setup.Windows/WiiCompiled.Setup.Windows.csproj "$version"
- check Launcher/Build-Installer.ps1 "ProductVersion = '$version'"
+ check Launcher/Directory.Build.props "$version"
exit $status
# The build jobs upload with `archive: false`, which stores each installer as a raw file
diff --git a/Launcher/Build-Installer.ps1 b/Launcher/Build-Installer.ps1
index 6113d7f..17f2b17 100644
--- a/Launcher/Build-Installer.ps1
+++ b/Launcher/Build-Installer.ps1
@@ -279,9 +279,12 @@ foreach ($required in @('ToolkitFingerprint','TranslationFingerprint','NativeToo
if ([string]::IsNullOrWhiteSpace($identities.$required)) { throw "Payload identity output is missing $required." }
}
+$productVersion = ((& $setupHost --version) -join '').Trim()
+if ($LASTEXITCODE -ne 0 -or [string]::IsNullOrWhiteSpace($productVersion)) { throw 'The setup host did not report its version.' }
+
$manifest = [ordered]@{
SchemaVersion = 2
- ProductVersion = '0.2.32'
+ ProductVersion = $productVersion
ExpectedGameId = $pins.GameId
ExpectedDolSha256 = $pins.DolSha256
ExpectedRelSha256 = $pins.RelSha256
diff --git a/Launcher/Directory.Build.props b/Launcher/Directory.Build.props
new file mode 100644
index 0000000..1010d80
--- /dev/null
+++ b/Launcher/Directory.Build.props
@@ -0,0 +1,7 @@
+
+
+
+ 0.2.33
+ false
+
+
diff --git a/Launcher/WiiCompiled.Setup.Common.Cli/WiiCompiled.Setup.Common.Cli.csproj b/Launcher/WiiCompiled.Setup.Common.Cli/WiiCompiled.Setup.Common.Cli.csproj
index e58d15b..364b745 100644
--- a/Launcher/WiiCompiled.Setup.Common.Cli/WiiCompiled.Setup.Common.Cli.csproj
+++ b/Launcher/WiiCompiled.Setup.Common.Cli/WiiCompiled.Setup.Common.Cli.csproj
@@ -6,7 +6,6 @@
enable
WiiCompiled.Setup.Common.Cli
WiiCompiled.Setup.Common.Cli
- 0.2.32
patchzy
WiiCompiled
Packaging-time helper: resolves (downloading if needed) the nodtool binary bundled by build-appimage.sh and Build-Installer.ps1
diff --git a/Launcher/WiiCompiled.Setup.Common/WiiCompiled.Setup.Common.csproj b/Launcher/WiiCompiled.Setup.Common/WiiCompiled.Setup.Common.csproj
index 056ef5c..3991fc5 100644
--- a/Launcher/WiiCompiled.Setup.Common/WiiCompiled.Setup.Common.csproj
+++ b/Launcher/WiiCompiled.Setup.Common/WiiCompiled.Setup.Common.csproj
@@ -5,7 +5,6 @@
enable
WiiCompiled.Setup.Common
WiiCompiled.Setup.Common
- 0.2.32
patchzy
WiiCompiled
Shared nodtool/Retro-WFC-payload logic used by both the Windows and Linux installers
diff --git a/Launcher/WiiCompiled.Setup.Linux/Models.cs b/Launcher/WiiCompiled.Setup.Linux/Models.cs
index ebe9964..387fa9a 100644
--- a/Launcher/WiiCompiled.Setup.Linux/Models.cs
+++ b/Launcher/WiiCompiled.Setup.Linux/Models.cs
@@ -1,9 +1,13 @@
+using System.Reflection;
+
namespace WiiCompiled.Setup.Linux;
internal static class ProductInfo
{
public const string Name = "WiiCompiled";
- public const string Version = "0.2.32";
+ public static readonly string Version =
+ typeof(ProductInfo).Assembly.GetCustomAttribute()!
+ .InformationalVersion;
}
/// One installed product's record inside install-state.json.
diff --git a/Launcher/WiiCompiled.Setup.Linux/WiiCompiled.Setup.Linux.csproj b/Launcher/WiiCompiled.Setup.Linux/WiiCompiled.Setup.Linux.csproj
index 639ec22..2737c4c 100644
--- a/Launcher/WiiCompiled.Setup.Linux/WiiCompiled.Setup.Linux.csproj
+++ b/Launcher/WiiCompiled.Setup.Linux/WiiCompiled.Setup.Linux.csproj
@@ -6,7 +6,6 @@
enable
WiiCompiled.Setup.Linux
WiiCompiled.Setup.Linux
- 0.2.32
patchzy
WiiCompiled
Command-line installer and launcher for WiiCompiled on Linux
diff --git a/Launcher/WiiCompiled.Setup.Windows/Program.cs b/Launcher/WiiCompiled.Setup.Windows/Program.cs
index 4cdba8a..2f14065 100644
--- a/Launcher/WiiCompiled.Setup.Windows/Program.cs
+++ b/Launcher/WiiCompiled.Setup.Windows/Program.cs
@@ -1,5 +1,6 @@
namespace WiiCompiled.Setup.Windows;
+using System.Reflection;
using System.Runtime.InteropServices;
internal static class Program
@@ -121,7 +122,9 @@ internal static class PlatformChecks
internal static class ProductInfo
{
public const string Name = "WiiCompiled";
- public const string Version = "0.2.32";
+ public static readonly string Version =
+ typeof(ProductInfo).Assembly.GetCustomAttribute()!
+ .InformationalVersion;
///
/// The setup executable is copied into the installation under this name. It is the launcher and
diff --git a/Launcher/WiiCompiled.Setup.Windows/WiiCompiled.Setup.Windows.csproj b/Launcher/WiiCompiled.Setup.Windows/WiiCompiled.Setup.Windows.csproj
index 9559e6f..6a30c74 100644
--- a/Launcher/WiiCompiled.Setup.Windows/WiiCompiled.Setup.Windows.csproj
+++ b/Launcher/WiiCompiled.Setup.Windows/WiiCompiled.Setup.Windows.csproj
@@ -7,7 +7,6 @@
WiiCompiled.Setup
WiiCompiled.Setup.Windows
app.manifest
- 0.2.32
patchzy
WiiCompiled
Command-line installer and launcher for WiiCompiled