diff --git a/ExternalProjects/.build_debug.sh b/ExternalProjects/.build_debug.sh
new file mode 100755
index 0000000000..093891ba6f
--- /dev/null
+++ b/ExternalProjects/.build_debug.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+dotnet build -c Debug -m
diff --git a/ExternalProjects/.build_release.sh b/ExternalProjects/.build_release.sh
new file mode 100755
index 0000000000..fc652886ed
--- /dev/null
+++ b/ExternalProjects/.build_release.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+dotnet build -c Release -m
diff --git a/ExternalProjects/BizHawk.Analyzer/BizHawk.Analyzer.csproj b/ExternalProjects/BizHawk.Analyzer/BizHawk.Analyzer.csproj
index f00e728611..098e1eb0f3 100644
--- a/ExternalProjects/BizHawk.Analyzer/BizHawk.Analyzer.csproj
+++ b/ExternalProjects/BizHawk.Analyzer/BizHawk.Analyzer.csproj
@@ -2,7 +2,7 @@
netstandard2.0
-
+
$(NoWarn);SA1200
@@ -10,7 +10,4 @@
-
-
-
diff --git a/ExternalProjects/BizHawk.Analyzer/build_debug.sh b/ExternalProjects/BizHawk.Analyzer/build_debug.sh
new file mode 120000
index 0000000000..c2127aded1
--- /dev/null
+++ b/ExternalProjects/BizHawk.Analyzer/build_debug.sh
@@ -0,0 +1 @@
+../.build_debug.sh
\ No newline at end of file
diff --git a/ExternalProjects/BizHawk.Analyzer/build_release.sh b/ExternalProjects/BizHawk.Analyzer/build_release.sh
new file mode 120000
index 0000000000..801b8e5998
--- /dev/null
+++ b/ExternalProjects/BizHawk.Analyzer/build_release.sh
@@ -0,0 +1 @@
+../.build_release.sh
\ No newline at end of file
diff --git a/ExternalProjects/BizHawk.SrcGen.ReflectionCache/BizHawk.SrcGen.ReflectionCache.csproj b/ExternalProjects/BizHawk.SrcGen.ReflectionCache/BizHawk.SrcGen.ReflectionCache.csproj
index 424e3eed52..1fc7f7ba0c 100644
--- a/ExternalProjects/BizHawk.SrcGen.ReflectionCache/BizHawk.SrcGen.ReflectionCache.csproj
+++ b/ExternalProjects/BizHawk.SrcGen.ReflectionCache/BizHawk.SrcGen.ReflectionCache.csproj
@@ -2,12 +2,9 @@
netstandard2.0
-
+
-
-
-
diff --git a/ExternalProjects/BizHawk.SrcGen.ReflectionCache/build_debug.sh b/ExternalProjects/BizHawk.SrcGen.ReflectionCache/build_debug.sh
new file mode 120000
index 0000000000..c2127aded1
--- /dev/null
+++ b/ExternalProjects/BizHawk.SrcGen.ReflectionCache/build_debug.sh
@@ -0,0 +1 @@
+../.build_debug.sh
\ No newline at end of file
diff --git a/ExternalProjects/BizHawk.SrcGen.ReflectionCache/build_release.sh b/ExternalProjects/BizHawk.SrcGen.ReflectionCache/build_release.sh
new file mode 120000
index 0000000000..801b8e5998
--- /dev/null
+++ b/ExternalProjects/BizHawk.SrcGen.ReflectionCache/build_release.sh
@@ -0,0 +1 @@
+../.build_release.sh
\ No newline at end of file
diff --git a/ExternalProjects/FlatBuffers.GenOutput/FlatBuffers.GenOutput.csproj b/ExternalProjects/FlatBuffers.GenOutput/FlatBuffers.GenOutput.csproj
index f75a437ddc..0cb21e67a0 100644
--- a/ExternalProjects/FlatBuffers.GenOutput/FlatBuffers.GenOutput.csproj
+++ b/ExternalProjects/FlatBuffers.GenOutput/FlatBuffers.GenOutput.csproj
@@ -2,7 +2,7 @@
netstandard2.0
-
+
disable
diff --git a/ExternalProjects/FlatBuffers.GenOutput/build_debug.sh b/ExternalProjects/FlatBuffers.GenOutput/build_debug.sh
new file mode 120000
index 0000000000..c2127aded1
--- /dev/null
+++ b/ExternalProjects/FlatBuffers.GenOutput/build_debug.sh
@@ -0,0 +1 @@
+../.build_debug.sh
\ No newline at end of file
diff --git a/ExternalProjects/FlatBuffers.GenOutput/build_release.sh b/ExternalProjects/FlatBuffers.GenOutput/build_release.sh
new file mode 120000
index 0000000000..801b8e5998
--- /dev/null
+++ b/ExternalProjects/FlatBuffers.GenOutput/build_release.sh
@@ -0,0 +1 @@
+../.build_release.sh
\ No newline at end of file
diff --git a/ExternalProjects/FlatBuffers.GenOutput/build_release_and_copy_asm.sh b/ExternalProjects/FlatBuffers.GenOutput/build_release_and_copy_asm.sh
deleted file mode 100755
index a107c51609..0000000000
--- a/ExternalProjects/FlatBuffers.GenOutput/build_release_and_copy_asm.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-outDir="../../References"
-cd "$(dirname "$0")" && rm -f "$outDir/FlatBuffers.GenOutput.dll" && dotnet build -c Release "$@" && cp bin/Release/*/FlatBuffers.GenOutput.dll $outDir
diff --git a/ExternalProjects/LibCommon.props b/ExternalProjects/LibCommon.props
new file mode 100644
index 0000000000..e7d7d96419
--- /dev/null
+++ b/ExternalProjects/LibCommon.props
@@ -0,0 +1,9 @@
+
+
+
+ true
+
+
+
+
+
diff --git a/ExternalProjects/PcxFileTypePlugin.HawkQuantizer/PcxFileTypePlugin.HawkQuantizer.csproj b/ExternalProjects/PcxFileTypePlugin.HawkQuantizer/PcxFileTypePlugin.HawkQuantizer.csproj
index e1a3a75afa..986843322c 100644
--- a/ExternalProjects/PcxFileTypePlugin.HawkQuantizer/PcxFileTypePlugin.HawkQuantizer.csproj
+++ b/ExternalProjects/PcxFileTypePlugin.HawkQuantizer/PcxFileTypePlugin.HawkQuantizer.csproj
@@ -2,7 +2,7 @@
netstandard2.0
-
+
true
disable
@@ -10,7 +10,4 @@
-
-
-
diff --git a/ExternalProjects/PcxFileTypePlugin.HawkQuantizer/build_debug.sh b/ExternalProjects/PcxFileTypePlugin.HawkQuantizer/build_debug.sh
new file mode 120000
index 0000000000..c2127aded1
--- /dev/null
+++ b/ExternalProjects/PcxFileTypePlugin.HawkQuantizer/build_debug.sh
@@ -0,0 +1 @@
+../.build_debug.sh
\ No newline at end of file
diff --git a/ExternalProjects/PcxFileTypePlugin.HawkQuantizer/build_release.sh b/ExternalProjects/PcxFileTypePlugin.HawkQuantizer/build_release.sh
new file mode 120000
index 0000000000..801b8e5998
--- /dev/null
+++ b/ExternalProjects/PcxFileTypePlugin.HawkQuantizer/build_release.sh
@@ -0,0 +1 @@
+../.build_release.sh
\ No newline at end of file
diff --git a/ExternalProjects/iso-parser/ISOParser.csproj b/ExternalProjects/iso-parser/ISOParser.csproj
index 1998f3b543..094f54bdcb 100644
--- a/ExternalProjects/iso-parser/ISOParser.csproj
+++ b/ExternalProjects/iso-parser/ISOParser.csproj
@@ -2,7 +2,7 @@
netstandard2.0
-
+
disable
diff --git a/ExternalProjects/iso-parser/build_debug.sh b/ExternalProjects/iso-parser/build_debug.sh
new file mode 120000
index 0000000000..c2127aded1
--- /dev/null
+++ b/ExternalProjects/iso-parser/build_debug.sh
@@ -0,0 +1 @@
+../.build_debug.sh
\ No newline at end of file
diff --git a/ExternalProjects/iso-parser/build_release.sh b/ExternalProjects/iso-parser/build_release.sh
new file mode 120000
index 0000000000..801b8e5998
--- /dev/null
+++ b/ExternalProjects/iso-parser/build_release.sh
@@ -0,0 +1 @@
+../.build_release.sh
\ No newline at end of file
diff --git a/References/BizHawk.Analyzer.dll b/References/BizHawk.Analyzer.dll
index b3a7549b29..433a439730 100644
Binary files a/References/BizHawk.Analyzer.dll and b/References/BizHawk.Analyzer.dll differ
diff --git a/References/ISOParser.dll b/References/ISOParser.dll
index a65afee5d1..75c27f3e90 100644
Binary files a/References/ISOParser.dll and b/References/ISOParser.dll differ