diff --git a/BinaryObjectScanner/BinaryObjectScanner.csproj b/BinaryObjectScanner/BinaryObjectScanner.csproj
index 734b1794..ee822dcf 100644
--- a/BinaryObjectScanner/BinaryObjectScanner.csproj
+++ b/BinaryObjectScanner/BinaryObjectScanner.csproj
@@ -23,21 +23,29 @@
MIT
+
+
+ WIN
+
+
-
+
$(DefaultItemExcludes);
**\AssemblyInfo.cs;
+ _EXTERNAL\LessIO\src\LessIO.Tests\**;
+ _EXTERNAL\libmspack4n\lib\**;
+ _EXTERNAL\libmspack4n\libmspack4ntest\**;
_EXTERNAL\stormlibsharp\lib\**;
_EXTERNAL\stormlibsharp\src\TestConsole\**
-
-
+
+
$(DefaultItemExcludes);
- _EXTERNAL\**;
+ _EXTERNAL\**
diff --git a/BinaryObjectScanner/FileType/MPQ.cs b/BinaryObjectScanner/FileType/MPQ.cs
index 23ae2aad..d0a7b6fb 100644
--- a/BinaryObjectScanner/FileType/MPQ.cs
+++ b/BinaryObjectScanner/FileType/MPQ.cs
@@ -1,7 +1,7 @@
using System;
using System.IO;
using BinaryObjectScanner.Interfaces;
-#if NETFRAMEWORK && !NET20 && !NET35 && !NET40
+#if ((NETFRAMEWORK && !NET20 && !NET35 && !NET40) || NETCOREAPP) && WIN
using StormLibSharp;
#endif
@@ -26,8 +26,9 @@ namespace BinaryObjectScanner.FileType
///
public string? Extract(Stream? stream, string file, bool includeDebug)
{
-#if NET20 || NET35 || NET40 || NETCOREAPP || NET5_0_OR_GREATER
- // Not supported for .NET Core and modern .NET due to Windows DLL requirements
+#if NET20 || NET35 || NET40 || !WIN
+ // Not supported for old .NET due to feature requirements
+ // Not supported in non-Windows builds due to DLL requirements
return null;
#else
try
diff --git a/BinaryObjectScanner/_EXTERNAL/README.MD b/BinaryObjectScanner/_EXTERNAL/README.MD
index 3a7046f5..4baa7370 100644
--- a/BinaryObjectScanner/_EXTERNAL/README.MD
+++ b/BinaryObjectScanner/_EXTERNAL/README.MD
@@ -4,4 +4,6 @@ This directory contains multiple external libraries. Here is the status of each:
| Directory | Library | Status |
| --------- | ------- | ------ |
-| stormlibsharp | [stormlibsharp](https://github.com/robpaveza/stormlibsharp) | External submodule |
\ No newline at end of file
+| LessIO | [LessIO](https://github.com/activescott/LessIO) | External submodule |
+| libmspack4n | [libmspack4n](https://github.com/activescott/libmspack4n) | External submodule |
+| stormlibsharp | [stormlibsharp](https://github.com/robpaveza/stormlibsharp) | External submodule |
diff --git a/BinaryObjectScanner/mspack.dll b/BinaryObjectScanner/mspack.dll
new file mode 100644
index 00000000..32fd7fb9
Binary files /dev/null and b/BinaryObjectScanner/mspack.dll differ
diff --git a/Test/Extractor.cs b/Test/Extractor.cs
index 0df62314..0d9b0468 100644
--- a/Test/Extractor.cs
+++ b/Test/Extractor.cs
@@ -474,7 +474,7 @@ namespace Test
}
}
-#if NETFRAMEWORK && !NET20 && !NET35 && !NET40
+#if ((NETFRAMEWORK && !NET20 && !NET35 && !NET40) || NETCOREAPP) && WIN
// MoPaQ (MPQ) archive
else if (ft == SupportedFileType.MPQ)
{
diff --git a/Test/Test.csproj b/Test/Test.csproj
index 5f5aa82a..d229f8dd 100644
--- a/Test/Test.csproj
+++ b/Test/Test.csproj
@@ -11,6 +11,11 @@
true
+
+
+ WIN
+
+