diff --git a/CHANGELIST.md b/CHANGELIST.md
index a75a1da9..427d8d43 100644
--- a/CHANGELIST.md
+++ b/CHANGELIST.md
@@ -28,6 +28,7 @@
- Retrieve serial from Cleanrip
- Fix build from rushed code
- Remove `-disc2` from Cleanrip serial
+- Enable Windows builds on Linux and Mac
### 3.0.3 (2023-12-04)
diff --git a/MPF.UI.Core/MPF.UI.Core.csproj b/MPF.UI.Core/MPF.UI.Core.csproj
index 439d4c74..98e6c1c0 100644
--- a/MPF.UI.Core/MPF.UI.Core.csproj
+++ b/MPF.UI.Core/MPF.UI.Core.csproj
@@ -5,6 +5,7 @@
net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0-windows;net6.0-windows;net7.0-windows;net8.0-windows
win-x86;win-x64
false
+ true
true
latest
enable
diff --git a/MPF/MPF.csproj b/MPF/MPF.csproj
index 8b5e889f..45f3f0d7 100644
--- a/MPF/MPF.csproj
+++ b/MPF/MPF.csproj
@@ -7,6 +7,7 @@
WinExe
Images\Icon.ico
false
+ true
true
latest
enable
diff --git a/publish-nix.sh b/publish-nix.sh
index 74fd5322..82d12f4a 100755
--- a/publish-nix.sh
+++ b/publish-nix.sh
@@ -10,8 +10,32 @@
# If any of these are not satisfied, the operation may fail
# in an unpredictable way and result in an incomplete output.
-# TODO: Re-enable MPF building after figuring out how to build Windows desktop applications on Linux
-# This may require an additional package to be installed?
+# Optional parameters
+USE_ALL=false
+INCLUDE_PROGRAMS=false # TODO: Figure out how to exclude folders with `zip`
+NO_BUILD=false
+NO_ARCHIVE=false
+while getopts "upba" OPTION
+do
+ case $OPTION in
+ u)
+ USE_ALL=true
+ ;;
+ p)
+ INCLUDE_PROGRAMS=true
+ ;;
+ b)
+ NO_BUILD=true
+ ;;
+ a)
+ NO_ARCHIVE=true
+ ;;
+ *)
+ echo "Invalid option provided"
+ exit 1
+ ;;
+ esac
+done
# Set the current directory as a variable
BUILD_FOLDER=$PWD
@@ -19,74 +43,127 @@ BUILD_FOLDER=$PWD
# Set the current commit hash
COMMIT=`git log --pretty=%H -1`
-# Restore Nuget packages for all builds
-echo "Restoring Nuget packages"
-dotnet restore
+# Create the build matrix arrays
+UI_FRAMEWORKS=("net6.0-windows" "net8.0-windows")
+UI_RUNTIMES=("win-x64")
+CHECK_FRAMEWORKS=("net6.0" "net8.0")
+CHECK_RUNTIMES=("win-x64" "linux-x64" "osx-x64")
-# .NET 6.0 Debug
-echo "Building .NET 6.0 debug"
-#dotnet publish MPF/MPF.csproj -f net6.0-windows -r win-x64 -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true
-dotnet publish MPF.Check/MPF.Check.csproj -f net6.0 -r win-x64 -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true
-dotnet publish MPF.Check/MPF.Check.csproj -f net6.0 -r linux-x64 -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true
-dotnet publish MPF.Check/MPF.Check.csproj -f net6.0 -r osx-x64 -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true
+# Use expanded lists, if requested
+if [ $USE_ALL = true ]
+then
+ UI_FRAMEWORKS=("net40" "net452" "net462" "net472" "net48" "netcoreapp3.1" "net5.0-windows" "net6.0-windows" "net7.0-windows" "net8.0-windows")
+ UI_RUNTIMES=("win-x86" "win-x64")
+ CHECK_FRAMEWORKS=("net20" "net35" "net40" "net452" "net462" "net472" "net48" "netcoreapp3.1" "net5.0" "net6.0" "net7.0" "net8.0")
+ CHECK_RUNTIMES=("win-x86" "win-x64" "win-arm64" "linux-x64" "linux-arm64" "osx-x64")
+fi
-# .NET 6.0 Release
-echo "Building .NET 6.0 release"
-#dotnet publish MPF/MPF.csproj -f net6.0-windows -r win-x64 -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:PublishTrimmed=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check/MPF.Check.csproj -f net6.0 -r win-x64 -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:PublishTrimmed=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check/MPF.Check.csproj -f net6.0 -r linux-x64 -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:PublishTrimmed=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check/MPF.Check.csproj -f net6.0 -r osx-x64 -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:PublishTrimmed=true -p:DebugType=None -p:DebugSymbols=false
+# Create the filter arrays
+SINGLE_FILE_CAPABLE=("net5.0" "net5.0-windows" "net6.0" "net6.0-windows" "net7.0" "net7.0-windows" "net8.0" "net8.0-windows")
+VALID_CROSS_PLATFORM_FRAMEWORKS=("netcoreapp3.1" "net5.0" "net6.0" "net7.0" "net8.0")
+VALID_CROSS_PLATFORM_RUNTIMES=("win-arm64" "linux-x64" "linux-arm64" "osx-x64")
-# .NET 8.0 Debug
-echo "Building .NET 8.0 debug"
-#dotnet publish MPF/MPF.csproj -f net8.0-windows -r win-x64 -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true
-dotnet publish MPF.Check/MPF.Check.csproj -f net8.0 -r win-x64 -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true
-dotnet publish MPF.Check/MPF.Check.csproj -f net8.0 -r linux-x64 -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true
-dotnet publish MPF.Check/MPF.Check.csproj -f net8.0 -r osx-x64 -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true
+# Only build if requested
+if [ $NO_BUILD = false ]
+then
+ # Restore Nuget packages for all builds
+ echo "Restoring Nuget packages"
+ dotnet restore
-# .NET 8.0 Release
-echo "Building .NET 8.0 release"
-#dotnet publish MPF/MPF.csproj -f net8.0-windows -r win-x64 -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:PublishTrimmed=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check/MPF.Check.csproj -f net8.0 -r win-x64 -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:PublishTrimmed=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check/MPF.Check.csproj -f net8.0 -r linux-x64 -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:PublishTrimmed=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check/MPF.Check.csproj -f net8.0 -r osx-x64 -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:PublishTrimmed=true -p:DebugType=None -p:DebugSymbols=false
+ # Build UI
+ for FRAMEWORK in "${UI_FRAMEWORKS[@]}"
+ do
+ for RUNTIME in "${UI_RUNTIMES[@]}"
+ do
+ # Only .NET 5 and above can publish to a single file
+ if [[ $(echo ${SINGLE_FILE_CAPABLE[@]} | fgrep -w $FRAMEWORK) ]]
+ then
+ dotnet publish MPF/MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true
+ dotnet publish MPF/MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false
+ else
+ dotnet publish MPF/MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT
+ dotnet publish MPF/MPF.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:DebugType=None -p:DebugSymbols=false
+ fi
+ done
+ done
-# Create MPF Debug archives
-#cd $BUILD_FOLDER/MPF/bin/Debug/net6.0-windows/win-x64/publish/
-#zip -r $BUILD_FOLDER/MPF_net6.0_win-x64_debug.zip .
-#cd $BUILD_FOLDER/MPF/bin/Debug/net8.0-windows/win-x64/publish/
-#zip -r $BUILD_FOLDER/MPF_net8.0_win-x64_debug.zip .
+ # Build Check
+ for FRAMEWORK in "${CHECK_FRAMEWORKS[@]}"
+ do
+ for RUNTIME in "${CHECK_RUNTIMES[@]}"
+ do
+ # If we have an invalid combination of framework and runtime
+ if [[ ! $(echo ${VALID_CROSS_PLATFORM_FRAMEWORKS[@]} | fgrep -w $FRAMEWORK) ]]
+ then
+ if [[ $(echo ${VALID_CROSS_PLATFORM_RUNTIMES[@]} | fgrep -w $RUNTIME) ]]
+ then
+ continue
+ fi
+ fi
-# Create MPF Release archives
-#cd $BUILD_FOLDER/MPF/bin/Release/net6.0-windows/win-x64/publish/
-#zip -r $BUILD_FOLDER/MPF_net6.0_win-x64_release.zip .
-#cd $BUILD_FOLDER/MPF/bin/Release/net8.0-windows/win-x64/publish/
-#zip -r $BUILD_FOLDER/MPF_net8.0_win-x64_release.zip .
+ # Only .NET 5 and above can publish to a single file
+ if [[ $(echo ${SINGLE_FILE_CAPABLE[@]} | fgrep -w $FRAMEWORK) ]]
+ then
+ dotnet publish MPF.Check/MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true
+ dotnet publish MPF.Check/MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false
+ else
+ dotnet publish MPF.Check/MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT
+ dotnet publish MPF.Check/MPF.Check.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:DebugType=None -p:DebugSymbols=false
+ fi
+ done
+ done
+fi
-# Create MPF.Check Debug archives
-cd $BUILD_FOLDER/MPF.Check/bin/Debug/net6.0/win-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net6.0_win-x64_debug.zip .
-cd $BUILD_FOLDER/MPF.Check/bin/Debug/net6.0/linux-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net6.0_linux-x64_debug.zip .
-cd $BUILD_FOLDER/MPF.Check/bin/Debug/net6.0/osx-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net6.0_osx-x64_debug.zip .
-cd $BUILD_FOLDER/MPF.Check/bin/Debug/net8.0/win-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net8.0_win-x64_debug.zip .
-cd $BUILD_FOLDER/MPF.Check/bin/Debug/net8.0/linux-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net8.0_linux-x64_debug.zip .
-cd $BUILD_FOLDER/MPF.Check/bin/Debug/net8.0/osx-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net8.0_osx-x64_debug.zip .
+# Only create archives if requested
+if [ $NO_ARCHIVE = false ]
+then
+ # Create UI archives
+ for FRAMEWORK in "${UI_FRAMEWORKS[@]}"
+ do
+ echo "Framework: $FRAMEWORK"
+ for RUNTIME in "${UI_RUNTIMES[@]}"
+ do
+ echo "Runtime: $RUNTIME"
+ cd $BUILD_FOLDER/MPF/bin/Debug/${FRAMEWORK}/${RUNTIME}/publish/
+ echo "PWD: $PWD"
+ if [ $INCLUDE_PROGRAMS = true ]
+ then
+ zip -r $BUILD_FOLDER/MPF_${FRAMEWORK}_${RUNTIME}_debug.zip .
+ else
+ zip -r $BUILD_FOLDER/MPF_${FRAMEWORK}_${RUNTIME}_debug.zip . -x 'Programs/\*'
+ fi
+ cd $BUILD_FOLDER/MPF/bin/Release/${FRAMEWORK}/${RUNTIME}/publish/
+ echo "PWD: $PWD"
+ if [ $INCLUDE_PROGRAMS = true ]
+ then
+ zip -r $BUILD_FOLDER/MPF_${FRAMEWORK}_${RUNTIME}_release.zip .
+ else
+ zip -r $BUILD_FOLDER/MPF_${FRAMEWORK}_${RUNTIME}_release.zip . -x 'Programs/\*'
+ fi
+ done
+ done
-# Create MPF.Check Release archives
-cd $BUILD_FOLDER/MPF.Check/bin/Release/net6.0/win-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net6.0_win-x64_release.zip .
-cd $BUILD_FOLDER/MPF.Check/bin/Release/net6.0/linux-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net6.0_linux-x64_release.zip .
-cd $BUILD_FOLDER/MPF.Check/bin/Release/net6.0/osx-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net6.0_osx-x64_release.zip .
-cd $BUILD_FOLDER/MPF.Check/bin/Release/net8.0/win-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net8.0_win-x64_release.zip .
-cd $BUILD_FOLDER/MPF.Check/bin/Release/net8.0/linux-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net8.0_linux-x64_release.zip .
-cd $BUILD_FOLDER/MPF.Check/bin/Release/net8.0/osx-x64/publish/
-zip -r $BUILD_FOLDER/MPF.Check_net8.0_osx-x64_release.zip .
+ # Create Check archives
+ for FRAMEWORK in "${CHECK_FRAMEWORKS[@]}"
+ do
+ for RUNTIME in "${CHECK_RUNTIMES[@]}"
+ do
+ # If we have an invalid combination of framework and runtime
+ if [[ ! $(echo ${VALID_CROSS_PLATFORM_FRAMEWORKS[@]} | fgrep -w $FRAMEWORK) ]]
+ then
+ if [[ $(echo ${VALID_CROSS_PLATFORM_RUNTIMES[@]} | fgrep -w $RUNTIME) ]]
+ then
+ continue
+ fi
+ fi
+
+ cd $BUILD_FOLDER/MPF.Check/bin/Debug/${FRAMEWORK}/${RUNTIME}/publish/
+ zip -r $BUILD_FOLDER/MPF.Check_${FRAMEWORK}_${RUNTIME}_debug.zip .
+ cd $BUILD_FOLDER/MPF.Check/bin/Release/${FRAMEWORK}/${RUNTIME}/publish/
+ zip -r $BUILD_FOLDER/MPF.Check_${FRAMEWORK}_${RUNTIME}_release.zip .
+ done
+ done
+
+ # Reset the directory
+ cd $BUILD_FOLDER
+fi
\ No newline at end of file
diff --git a/publish-win.bat b/publish-win.bat
deleted file mode 100644
index fbabcdf2..00000000
--- a/publish-win.bat
+++ /dev/null
@@ -1,89 +0,0 @@
-@echo OFF
-
-REM This batch file assumes the following:
-REM - .NET 8.0 (or newer) SDK is installed and in PATH
-REM - 7-zip commandline (7z.exe) is installed and in PATH
-REM - Git for Windows is installed and in PATH
-REM - The relevant commandline programs are already downloaded
-REM and put into their respective folders
-REM
-REM If any of these are not satisfied, the operation may fail
-REM in an unpredictable way and result in an incomplete output.
-
-REM Set the current directory as a variable
-set BUILD_FOLDER=%~dp0
-
-REM Set the current commit hash
-for /f %%i in ('git log --pretty^=%%H -1') do set COMMIT=%%i
-
-REM Restore Nuget packages for all builds
-echo Restoring Nuget packages
-dotnet restore
-
-REM .NET 6.0 Debug
-echo Building .NET 6.0 debug
-dotnet publish MPF\MPF.csproj -f net6.0-windows -r win-x64 -c Debug --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true
-dotnet publish MPF.Check\MPF.Check.csproj -f net6.0 -r win-x64 -c Debug --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true
-dotnet publish MPF.Check\MPF.Check.csproj -f net6.0 -r linux-x64 -c Debug --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true
-dotnet publish MPF.Check\MPF.Check.csproj -f net6.0 -r osx-x64 -c Debug --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true
-
-REM .NET 6.0 Release
-echo Building .NET 6.0 release
-dotnet publish MPF\MPF.csproj -f net6.0-windows -r win-x64 -c Release --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check\MPF.Check.csproj -f net6.0 -r win-x64 -c Release --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check\MPF.Check.csproj -f net6.0 -r linux-x64 -c Release --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check\MPF.Check.csproj -f net6.0 -r osx-x64 -c Release --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false
-
-REM .NET 8.0 Debug
-echo Building .NET 8.0 debug
-dotnet publish MPF\MPF.csproj -f net8.0-windows -r win-x64 -c Debug --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true
-dotnet publish MPF.Check\MPF.Check.csproj -f net8.0 -r win-x64 -c Debug --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true
-dotnet publish MPF.Check\MPF.Check.csproj -f net8.0 -r linux-x64 -c Debug --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true
-dotnet publish MPF.Check\MPF.Check.csproj -f net8.0 -r osx-x64 -c Debug --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true
-
-REM .NET 8.0 Release
-echo Building .NET 8.0 release
-dotnet publish MPF\MPF.csproj -f net8.0-windows -r win-x64 -c Release --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check\MPF.Check.csproj -f net8.0 -r win-x64 -c Release --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check\MPF.Check.csproj -f net8.0 -r linux-x64 -c Release --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false
-dotnet publish MPF.Check\MPF.Check.csproj -f net8.0 -r osx-x64 -c Release --self-contained true --version-suffix %COMMIT% -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false
-
-REM Create MPF Debug archives
-cd %BUILD_FOLDER%\MPF\bin\Debug\net6.0-windows\win-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF_net6.0_win-x64_debug.zip *
-cd %BUILD_FOLDER%\MPF\bin\Debug\net8.0-windows\win-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF_net8.0_win-x64_debug.zip *
-
-REM Create MPF Release archives
-cd %BUILD_FOLDER%\MPF\bin\Release\net6.0-windows\win-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF_net6.0_win-x64_release.zip *
-cd %BUILD_FOLDER%\MPF\bin\Release\net8.0-windows\win-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF_net8.0_win-x64_release.zip *
-
-REM Create MPF.Check Debug archives
-cd %BUILD_FOLDER%\MPF.Check\bin\Debug\net6.0\win-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net6.0_win-x64_debug.zip *
-cd %BUILD_FOLDER%\MPF.Check\bin\Debug\net6.0\linux-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net6.0_linux-x64_debug.zip *
-cd %BUILD_FOLDER%\MPF.Check\bin\Debug\net6.0\osx-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net6.0_osx-x64_debug.zip *
-cd %BUILD_FOLDER%\MPF.Check\bin\Debug\net8.0\win-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net8.0_win-x64_debug.zip *
-cd %BUILD_FOLDER%\MPF.Check\bin\Debug\net8.0\linux-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net8.0_linux-x64_debug.zip *
-cd %BUILD_FOLDER%\MPF.Check\bin\Debug\net8.0\osx-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net8.0_osx-x64_debug.zip *
-
-REM Create MPF.Check Release archives
-cd %BUILD_FOLDER%\MPF.Check\bin\Release\net6.0\win-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net6.0_win-x64_release.zip *
-cd %BUILD_FOLDER%\MPF.Check\bin\Release\net6.0\linux-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net6.0_linux-x64_release.zip *
-cd %BUILD_FOLDER%\MPF.Check\bin\Release\net6.0\osx-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net6.0_osx-x64_release.zip *
-cd %BUILD_FOLDER%\MPF.Check\bin\Release\net8.0\win-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net8.0_win-x64_release.zip *
-cd %BUILD_FOLDER%\MPF.Check\bin\Release\net8.0\linux-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net8.0_linux-x64_release.zip *
-cd %BUILD_FOLDER%\MPF.Check\bin\Release\net8.0\osx-x64\publish\
-7z a -tzip %BUILD_FOLDER%\MPF.Check_net8.0_osx-x64_release.zip *
diff --git a/publish-win.ps1 b/publish-win.ps1
index 7d447c55..71bb8dfc 100644
--- a/publish-win.ps1
+++ b/publish-win.ps1
@@ -113,7 +113,7 @@ if (!$NO_ARCHIVE.IsPresent)
{
foreach ($RUNTIME in $UI_RUNTIMES)
{
- Set-Location -Path $BUILD_FOLDER\MPF\bin\Debug\$FRAMEWORK\$RUNTIME\publish\
+ Set-Location -Path $BUILD_FOLDER\MPF\bin\Debug\${FRAMEWORK}\${RUNTIME}\publish\
if ($INCLUDE_PROGRAMS.IsPresent)
{
7z a -tzip $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_debug.zip *
@@ -122,7 +122,7 @@ if (!$NO_ARCHIVE.IsPresent)
{
7z a -tzip -x!Programs\* $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_debug.zip *
}
- Set-Location -Path $BUILD_FOLDER\MPF\bin\Release\$FRAMEWORK\$RUNTIME\publish\
+ Set-Location -Path $BUILD_FOLDER\MPF\bin\Release\${FRAMEWORK}\${RUNTIME}\publish\
if ($INCLUDE_PROGRAMS.IsPresent)
{
7z a -tzip $BUILD_FOLDER\MPF_${FRAMEWORK}_${RUNTIME}_release.zip *
@@ -145,9 +145,9 @@ if (!$NO_ARCHIVE.IsPresent)
continue
}
- Set-Location -Path $BUILD_FOLDER\MPF.Check\bin\Debug\$FRAMEWORK\$RUNTIME\publish\
+ Set-Location -Path $BUILD_FOLDER\MPF.Check\bin\Debug\${FRAMEWORK}\${RUNTIME}\publish\
7z a -tzip $BUILD_FOLDER\MPF.Check_${FRAMEWORK}_${RUNTIME}_debug.zip *
- Set-Location -Path $BUILD_FOLDER\MPF.Check\bin\Release\$FRAMEWORK\${RUNTIME}\publish\
+ Set-Location -Path $BUILD_FOLDER\MPF.Check\bin\Release\${FRAMEWORK}\${RUNTIME}\publish\
7z a -tzip $BUILD_FOLDER\MPF.Check_${FRAMEWORK}_${RUNTIME}_release.zip *
}
}