diff --git a/.gitignore b/.gitignore
index 3e56cfa..39018c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+/publish
+
# Created by https://www.toptal.com/developers/gitignore/api/rider,csharp
# Edit at https://www.toptal.com/developers/gitignore?templates=rider,csharp
diff --git a/FCPModUpdater.csproj b/FCPModUpdater.csproj
index 088f0d0..5860c53 100644
--- a/FCPModUpdater.csproj
+++ b/FCPModUpdater.csproj
@@ -15,4 +15,9 @@
+
+ embedded
+ true
+
+
diff --git a/Services/PathDiscoveryService.cs b/Services/PathDiscoveryService.cs
index 9b9f422..d5f40e7 100644
--- a/Services/PathDiscoveryService.cs
+++ b/Services/PathDiscoveryService.cs
@@ -48,18 +48,15 @@ public class PathDiscoveryService
private static List GetWindowsPaths()
{
- var programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
var programFilesX86 = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86);
var paths = new List
{
// Steam default locations
Path.Combine(programFilesX86, "Steam/steamapps/common/RimWorld/Mods"),
- Path.Combine(programFiles, "Steam/steamapps/common/RimWorld/Mods"),
// GOG default location
Path.Combine(programFilesX86, "GOG Galaxy/Games/RimWorld/Mods"),
- Path.Combine(programFiles, "GOG Galaxy/Games/RimWorld/Mods"),
@"C:\GOG Games\RimWorld\Mods",
};
diff --git a/publish-all.sh b/publish-all.sh
new file mode 100755
index 0000000..936288f
--- /dev/null
+++ b/publish-all.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+APP_NAME="FCPModUpdater"
+
+# Self-contained
+dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o ./publish/win-x64-sc ./FCPModUpdater.csproj
+dotnet publish -c Release -r linux-x64 --self-contained true -p:PublishSingleFile=true -o ./publish/linux-x64-sc ./FCPModUpdater.csproj
+
+# Archive self-contained builds
+cd ./publish
+zip -r "${APP_NAME}-win-x64-selfcontained.zip" win-x64-sc && rm -rf win-x64-sc
+tar -czvf "${APP_NAME}-linux-x64-selfcontained.tar.gz" linux-x64-sc && rm -rf linux-x64-sc
+cd ..
+
+# Framework-dependent
+dotnet publish -c Release -r win-x64 --self-contained false -p:PublishSingleFile=false -o ./publish/win-x64-fd ./FCPModUpdater.csproj
+dotnet publish -c Release -r linux-x64 --self-contained false -p:PublishSingleFile=false -o ./publish/linux-x64-fd ./FCPModUpdater.csproj
+
+# Archive framework-dependent builds (keep originals)
+cd ./publish
+zip -r "${APP_NAME}-win-x64.zip" win-x64-fd
+tar -czvf "${APP_NAME}-linux-x64.tar.gz" linux-x64-fd
+cd ..