summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-08-16 19:43:55 -0400
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-11-28 00:01:44 -0500
commitce80c68135b08fea7caaa9581b3c4eba61c3ec65 (patch)
treea2c4612dfa8b823b06d5efb6c161c36332206c08
parent897edd7ff0c4a69289330e086b9b03e7a756b15c (diff)
downloadSMAPI-ce80c68135b08fea7caaa9581b3c4eba61c3ec65.tar.gz
SMAPI-ce80c68135b08fea7caaa9581b3c4eba61c3ec65.tar.bz2
SMAPI-ce80c68135b08fea7caaa9581b3c4eba61c3ec65.zip
fix segfault on Linux/macOS after .NET 5 update
Harmony doesn't seem to support tiered compilation on Linux/macOS, but the vanilla game disables that too anyway. The bundled runtimeconfig files match the ones used by the vanilla game. Thanks to 0x0ade for identifying the cause!
-rw-r--r--build/prepare-install-package.targets3
-rw-r--r--src/SMAPI.Installer/assets/runtimeconfig.unix.json14
-rw-r--r--src/SMAPI.Installer/assets/runtimeconfig.windows.json12
3 files changed, 28 insertions, 1 deletions
diff --git a/build/prepare-install-package.targets b/build/prepare-install-package.targets
index bc1716a3..21b02b87 100644
--- a/build/prepare-install-package.targets
+++ b/build/prepare-install-package.targets
@@ -36,13 +36,14 @@
<Copy SourceFiles="$(TargetDir)\assets\unix-install.sh" DestinationFiles="$(PackagePath)\install on macOS.command" />
<Copy SourceFiles="$(TargetDir)\assets\windows-install.bat" DestinationFiles="$(PackagePath)\install on Windows.bat" />
<Copy SourceFiles="$(TargetDir)\assets\README.txt" DestinationFolder="$(PackagePath)" />
+ <Copy SourceFiles="$(TargetDir)\assets\windows-exe-config.xml" DestinationFiles="$(PackagePath)\internal\windows-install.exe.config" Condition="$(PlatformName) == 'windows'" />
<Copy SourceFiles="$(TargetDir)\$(TargetName).dll" DestinationFolder="$(PackagePath)\internal" />
<Copy SourceFiles="$(TargetDir)\$(TargetName).exe" DestinationFiles="$(PackagePath)\internal\$(PlatformName)-install.exe" Condition="$(PlatformName) == 'windows'" />
<Copy SourceFiles="$(TargetDir)\$(TargetName)" DestinationFiles="$(PackagePath)\internal\$(PlatformName)-install" Condition="$(PlatformName) != 'windows'" />
<Copy SourceFiles="$(TargetDir)\$(TargetName).runtimeconfig.json" DestinationFolder="$(PackagePath)\internal" />
- <Copy SourceFiles="$(TargetDir)\assets\windows-exe-config.xml" DestinationFiles="$(PackagePath)\internal\$(PlatformName)-install.exe.config" Condition="$(PlatformName) == 'windows'" />
<!--copy bundle files-->
+ <Copy SourceFiles="$(TargetDir)\assets\runtimeconfig.$(PlatformName).json" DestinationFiles="$(PackagePath)\bundle\StardewModdingAPI.runtimeconfig.json" />
<Copy SourceFiles="$(SmapiBin)\StardewModdingAPI.dll" DestinationFolder="$(PackagePath)\bundle" />
<Copy SourceFiles="$(SmapiBin)\StardewModdingAPI.exe" DestinationFolder="$(PackagePath)\bundle" Condition="$(PlatformName) == 'windows'" />
<Copy SourceFiles="$(SmapiBin)\StardewModdingAPI" DestinationFolder="$(PackagePath)\bundle" Condition="$(PlatformName) != 'windows'" />
diff --git a/src/SMAPI.Installer/assets/runtimeconfig.unix.json b/src/SMAPI.Installer/assets/runtimeconfig.unix.json
new file mode 100644
index 00000000..8a01ceb1
--- /dev/null
+++ b/src/SMAPI.Installer/assets/runtimeconfig.unix.json
@@ -0,0 +1,14 @@
+{
+ "runtimeOptions": {
+ "tfm": "net5.0",
+ "includedFrameworks": [
+ {
+ "name": "Microsoft.NETCore.App",
+ "version": "5.0.7"
+ }
+ ],
+ "configProperties": {
+ "System.Runtime.TieredCompilation": false
+ }
+ }
+}
diff --git a/src/SMAPI.Installer/assets/runtimeconfig.windows.json b/src/SMAPI.Installer/assets/runtimeconfig.windows.json
new file mode 100644
index 00000000..b693d809
--- /dev/null
+++ b/src/SMAPI.Installer/assets/runtimeconfig.windows.json
@@ -0,0 +1,12 @@
+{
+ "runtimeOptions": {
+ "tfm": "net5.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "5.0.0"
+ },
+ "configProperties": {
+ "System.Runtime.TieredCompilation": false
+ }
+ }
+}