From 1dd3ce80b6fe71436c0c296f838af30c804896a4 Mon Sep 17 00:00:00 2001
From: Drake53 <49623303+Drake53@users.noreply.github.com>
Date: Sat, 4 Jul 2026 11:37:32 +0200
Subject: [PATCH 1/6] Rename MSBuild property PACK to PUBLISH for clarity.
---
.github/scripts/build-and-pack-nuget.sh | 6 ++---
Directory.Build.props | 8 +++----
src/Directory.Build.props | 22 +++++++++----------
.../War3Net.Build.Core.csproj | 4 ++--
src/War3Net.Build/War3Net.Build.csproj | 4 ++--
.../War3Net.CodeAnalysis.Decompilers.csproj | 4 ++--
.../War3Net.CodeAnalysis.Jass.csproj | 4 ++--
.../War3Net.CodeAnalysis.Transpilers.csproj | 4 ++--
.../War3Net.CodeAnalysis.VJass.csproj | 4 ++--
.../War3Net.Drawing.Blp.csproj | 4 ++--
src/War3Net.IO.Casc/War3Net.IO.Casc.csproj | 4 ++--
.../War3Net.IO.Compression.csproj | 4 ++--
src/War3Net.IO.Mpq/War3Net.IO.Mpq.csproj | 4 ++--
src/War3Net.IO.Slk/War3Net.IO.Slk.csproj | 4 ++--
src/War3Net.Modeling/War3Net.Modeling.csproj | 4 ++--
.../War3Net.Rendering.csproj | 4 ++--
src/War3Net.Replay/War3Net.Replay.csproj | 4 ++--
.../War3Net.Runtime.Api.Blizzard.csproj | 4 ++--
.../War3Net.Runtime.Api.Common.csproj | 4 ++--
.../War3Net.Runtime.Core.csproj | 4 ++--
src/War3Net.Runtime/War3Net.Runtime.csproj | 4 ++--
submodules/Directory.Build.props | 2 +-
22 files changed, 55 insertions(+), 55 deletions(-)
diff --git a/.github/scripts/build-and-pack-nuget.sh b/.github/scripts/build-and-pack-nuget.sh
index f0e12eb0..27e6395d 100644
--- a/.github/scripts/build-and-pack-nuget.sh
+++ b/.github/scripts/build-and-pack-nuget.sh
@@ -191,11 +191,11 @@ while [ -n "$REMAINING_PROJECTS" ] && [ $ITERATION -lt $MAX_ITERATIONS ]; do
> "$ITER_SLNF"
COUNT=$(echo "$PROJECTS_TO_PACK" | tr ';' '\n' | grep -cv '^$')
- dotnet restore "$ITER_SLNF" -p:PACK=true -p:Configuration=Release --verbosity minimal --force
+ dotnet restore "$ITER_SLNF" -p:PUBLISH=true -p:Configuration=Release --verbosity minimal --force
- dotnet build "$ITER_SLNF" -p:PACK=true -p:WarningLevel=0 -p:RunAnalyzers=false -p:SuppressTfmSupportBuildWarnings=true --configuration Release --no-restore --verbosity minimal
+ dotnet build "$ITER_SLNF" -p:PUBLISH=true -p:WarningLevel=0 -p:RunAnalyzers=false -p:SuppressTfmSupportBuildWarnings=true --configuration Release --no-restore --verbosity minimal
- dotnet pack "$ITER_SLNF" -p:PACK=true --configuration Release --no-build --output ./artifacts --verbosity minimal
+ dotnet pack "$ITER_SLNF" -p:PUBLISH=true --configuration Release --no-build --output ./artifacts --verbosity minimal
rm -f "$ITER_SLNF"
fi
diff --git a/Directory.Build.props b/Directory.Build.props
index f2aece48..06a6896b 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,14 +1,14 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
+
PreserveNewest
@@ -22,7 +22,7 @@
-
+
AllEnabledByDefault
5
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 096f88e4..d8bbcf67 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -2,21 +2,21 @@
-
+
true
0
-
-
+
+
true
true
-
+
false
true
-
-
+
+
@@ -24,13 +24,13 @@
Drake53
Drake53 and Contributors
Copyright (c) Drake53 and Contributors
-
+
MIT
true
-
+
true
snupkg
-
+
https://github.com/Drake53/War3Net/tree/master/docs/changelogs
https://github.com/Drake53/War3Net
@@ -38,12 +38,12 @@
README.md
-
+
-
+
<_Parameter1>$(MSBuildProjectName).Benchmarks
diff --git a/src/War3Net.Build.Core/War3Net.Build.Core.csproj b/src/War3Net.Build.Core/War3Net.Build.Core.csproj
index 57d20565..87fdc4f4 100644
--- a/src/War3Net.Build.Core/War3Net.Build.Core.csproj
+++ b/src/War3Net.Build.Core/War3Net.Build.Core.csproj
@@ -10,13 +10,13 @@
modding;parser;serializer;war3map;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.Build/War3Net.Build.csproj b/src/War3Net.Build/War3Net.Build.csproj
index 4f0cafea..202f2610 100644
--- a/src/War3Net.Build/War3Net.Build.csproj
+++ b/src/War3Net.Build/War3Net.Build.csproj
@@ -9,12 +9,12 @@
jass;map;modding;mpq;vjass;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.CodeAnalysis.Decompilers/War3Net.CodeAnalysis.Decompilers.csproj b/src/War3Net.CodeAnalysis.Decompilers/War3Net.CodeAnalysis.Decompilers.csproj
index d5f8ebc4..cc44d024 100644
--- a/src/War3Net.CodeAnalysis.Decompilers/War3Net.CodeAnalysis.Decompilers.csproj
+++ b/src/War3Net.CodeAnalysis.Decompilers/War3Net.CodeAnalysis.Decompilers.csproj
@@ -9,12 +9,12 @@
decompiler;jass;modding;war3map;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.CodeAnalysis.Jass/War3Net.CodeAnalysis.Jass.csproj b/src/War3Net.CodeAnalysis.Jass/War3Net.CodeAnalysis.Jass.csproj
index bb9c8bb9..abea9542 100644
--- a/src/War3Net.CodeAnalysis.Jass/War3Net.CodeAnalysis.Jass.csproj
+++ b/src/War3Net.CodeAnalysis.Jass/War3Net.CodeAnalysis.Jass.csproj
@@ -9,12 +9,12 @@
jass;modding;parser;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.CodeAnalysis.Transpilers/War3Net.CodeAnalysis.Transpilers.csproj b/src/War3Net.CodeAnalysis.Transpilers/War3Net.CodeAnalysis.Transpilers.csproj
index 447f2c5b..d85377c9 100644
--- a/src/War3Net.CodeAnalysis.Transpilers/War3Net.CodeAnalysis.Transpilers.csproj
+++ b/src/War3Net.CodeAnalysis.Transpilers/War3Net.CodeAnalysis.Transpilers.csproj
@@ -9,12 +9,12 @@
csharp;jass;lua;modding;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.CodeAnalysis.VJass/War3Net.CodeAnalysis.VJass.csproj b/src/War3Net.CodeAnalysis.VJass/War3Net.CodeAnalysis.VJass.csproj
index cf397f48..26f8ebd3 100644
--- a/src/War3Net.CodeAnalysis.VJass/War3Net.CodeAnalysis.VJass.csproj
+++ b/src/War3Net.CodeAnalysis.VJass/War3Net.CodeAnalysis.VJass.csproj
@@ -9,12 +9,12 @@
jass;modding;parser;vjass;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.Drawing.Blp/War3Net.Drawing.Blp.csproj b/src/War3Net.Drawing.Blp/War3Net.Drawing.Blp.csproj
index 020aa2fe..2dfa1d80 100644
--- a/src/War3Net.Drawing.Blp/War3Net.Drawing.Blp.csproj
+++ b/src/War3Net.Drawing.Blp/War3Net.Drawing.Blp.csproj
@@ -18,11 +18,11 @@
-
+
-
+
diff --git a/src/War3Net.IO.Casc/War3Net.IO.Casc.csproj b/src/War3Net.IO.Casc/War3Net.IO.Casc.csproj
index 7142a0a8..cd973b93 100644
--- a/src/War3Net.IO.Casc/War3Net.IO.Casc.csproj
+++ b/src/War3Net.IO.Casc/War3Net.IO.Casc.csproj
@@ -9,11 +9,11 @@
casc;modding;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.IO.Compression/War3Net.IO.Compression.csproj b/src/War3Net.IO.Compression/War3Net.IO.Compression.csproj
index 44146812..142a91d5 100644
--- a/src/War3Net.IO.Compression/War3Net.IO.Compression.csproj
+++ b/src/War3Net.IO.Compression/War3Net.IO.Compression.csproj
@@ -14,11 +14,11 @@
-
+
-
+
diff --git a/src/War3Net.IO.Mpq/War3Net.IO.Mpq.csproj b/src/War3Net.IO.Mpq/War3Net.IO.Mpq.csproj
index 7e132d34..8cde7faf 100644
--- a/src/War3Net.IO.Mpq/War3Net.IO.Mpq.csproj
+++ b/src/War3Net.IO.Mpq/War3Net.IO.Mpq.csproj
@@ -9,11 +9,11 @@
modding;mpq;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.IO.Slk/War3Net.IO.Slk.csproj b/src/War3Net.IO.Slk/War3Net.IO.Slk.csproj
index c4929732..e942fff0 100644
--- a/src/War3Net.IO.Slk/War3Net.IO.Slk.csproj
+++ b/src/War3Net.IO.Slk/War3Net.IO.Slk.csproj
@@ -9,11 +9,11 @@
modding;slk;sylk;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.Modeling/War3Net.Modeling.csproj b/src/War3Net.Modeling/War3Net.Modeling.csproj
index 0c0e4b36..20e6920a 100644
--- a/src/War3Net.Modeling/War3Net.Modeling.csproj
+++ b/src/War3Net.Modeling/War3Net.Modeling.csproj
@@ -9,11 +9,11 @@
mdl;mdx;modding;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.Rendering/War3Net.Rendering.csproj b/src/War3Net.Rendering/War3Net.Rendering.csproj
index d0104a74..f50e758d 100644
--- a/src/War3Net.Rendering/War3Net.Rendering.csproj
+++ b/src/War3Net.Rendering/War3Net.Rendering.csproj
@@ -20,13 +20,13 @@
-
+
-
+
diff --git a/src/War3Net.Replay/War3Net.Replay.csproj b/src/War3Net.Replay/War3Net.Replay.csproj
index 084caa9a..7357d585 100644
--- a/src/War3Net.Replay/War3Net.Replay.csproj
+++ b/src/War3Net.Replay/War3Net.Replay.csproj
@@ -14,11 +14,11 @@
-
+
-
+
diff --git a/src/War3Net.Runtime.Api.Blizzard/War3Net.Runtime.Api.Blizzard.csproj b/src/War3Net.Runtime.Api.Blizzard/War3Net.Runtime.Api.Blizzard.csproj
index 35d2d63c..cc54e99a 100644
--- a/src/War3Net.Runtime.Api.Blizzard/War3Net.Runtime.Api.Blizzard.csproj
+++ b/src/War3Net.Runtime.Api.Blizzard/War3Net.Runtime.Api.Blizzard.csproj
@@ -10,11 +10,11 @@
api;blizzard;modding;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.Runtime.Api.Common/War3Net.Runtime.Api.Common.csproj b/src/War3Net.Runtime.Api.Common/War3Net.Runtime.Api.Common.csproj
index c2a93b1a..ff70e1ea 100644
--- a/src/War3Net.Runtime.Api.Common/War3Net.Runtime.Api.Common.csproj
+++ b/src/War3Net.Runtime.Api.Common/War3Net.Runtime.Api.Common.csproj
@@ -10,11 +10,11 @@
api;common;modding;warcraft3;wc3
-
+
-
+
diff --git a/src/War3Net.Runtime.Core/War3Net.Runtime.Core.csproj b/src/War3Net.Runtime.Core/War3Net.Runtime.Core.csproj
index d168ff9d..cd665259 100644
--- a/src/War3Net.Runtime.Core/War3Net.Runtime.Core.csproj
+++ b/src/War3Net.Runtime.Core/War3Net.Runtime.Core.csproj
@@ -18,12 +18,12 @@
-
+
-
+
diff --git a/src/War3Net.Runtime/War3Net.Runtime.csproj b/src/War3Net.Runtime/War3Net.Runtime.csproj
index d85c0cee..7db05bfd 100644
--- a/src/War3Net.Runtime/War3Net.Runtime.csproj
+++ b/src/War3Net.Runtime/War3Net.Runtime.csproj
@@ -14,12 +14,12 @@
-
+
-
+
diff --git a/submodules/Directory.Build.props b/submodules/Directory.Build.props
index 92539092..25795d7a 100644
--- a/submodules/Directory.Build.props
+++ b/submodules/Directory.Build.props
@@ -4,7 +4,7 @@
README.md
-
+
From 99fca45cb404ceab37c2aa80750e34386fd54d9e Mon Sep 17 00:00:00 2001
From: Drake53 <49623303+Drake53@users.noreply.github.com>
Date: Sat, 4 Jul 2026 11:41:23 +0200
Subject: [PATCH 2/6] Migrate solution to .slnx format.
---
War3Net.sln | 448 --------------------------------------------
War3Net.slnx | 64 +++++++
War3NetPublish.slnf | 2 +-
War3NetStable.slnf | 2 +-
4 files changed, 66 insertions(+), 450 deletions(-)
delete mode 100644 War3Net.sln
create mode 100644 War3Net.slnx
diff --git a/War3Net.sln b/War3Net.sln
deleted file mode 100644
index 6c005977..00000000
--- a/War3Net.sln
+++ /dev/null
@@ -1,448 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29020.237
-MinimumVisualStudioVersion = 10.0.40219.1
-
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Build", "src\War3Net.Build\War3Net.Build.csproj", "{1EDC8582-2B2C-4CBD-93FB-E4CBD85DC8CD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Build.Core", "src\War3Net.Build.Core\War3Net.Build.Core.csproj", "{D0149A53-7CED-4D50-9A9C-42EE41688829}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis", "src\War3Net.CodeAnalysis\War3Net.CodeAnalysis.csproj", "{4229042D-54E4-4D9C-AC5E-AB4BCA1549AF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis.Decompilers", "src\War3Net.CodeAnalysis.Decompilers\War3Net.CodeAnalysis.Decompilers.csproj", "{64A4A189-398F-4A73-B770-D50A7EF1D8B3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis.Jass", "src\War3Net.CodeAnalysis.Jass\War3Net.CodeAnalysis.Jass.csproj", "{7C1425CC-E4C4-4EBF-B645-22D4775DC03A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis.Transpilers", "src\War3Net.CodeAnalysis.Transpilers\War3Net.CodeAnalysis.Transpilers.csproj", "{3B5CB7A3-EAA7-47A5-9866-DC692541EEC3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis.VJass", "src\War3Net.CodeAnalysis.VJass\War3Net.CodeAnalysis.VJass.csproj", "{BEE2EE9A-8AF1-443C-A62A-5F50F9A36D61}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Common", "src\War3Net.Common\War3Net.Common.csproj", "{2BB2862E-F10C-48DD-97C2-B508E425BD5E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Drawing.Blp", "src\War3Net.Drawing.Blp\War3Net.Drawing.Blp.csproj", "{75A5929C-4828-4C97-858C-0893840C27C8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.IO.Casc", "src\War3Net.IO.Casc\War3Net.IO.Casc.csproj", "{82DF534F-E4FE-4E38-9B81-54BECB2B7461}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.IO.Compression", "src\War3Net.IO.Compression\War3Net.IO.Compression.csproj", "{E7055A8C-A27B-4AC4-91EB-70DA65D4C385}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.IO.Mpq", "src\War3Net.IO.Mpq\War3Net.IO.Mpq.csproj", "{BB33E313-B458-45AE-A18E-C0978C14CC43}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.IO.Slk", "src\War3Net.IO.Slk\War3Net.IO.Slk.csproj", "{D1328289-F479-4181-8528-142A6AA50D8B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Modeling", "src\War3Net.Modeling\War3Net.Modeling.csproj", "{C22C827D-7D88-4E6D-AC8A-2692979E2E53}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Rendering", "src\War3Net.Rendering\War3Net.Rendering.csproj", "{D769C1C7-543A-43CC-B5BA-9810066FC37A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Replay", "src\War3Net.Replay\War3Net.Replay.csproj", "{B158ED8F-9BFE-46FD-A39C-C3102CA52C95}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Runtime", "src\War3Net.Runtime\War3Net.Runtime.csproj", "{4A28E76B-DBA7-47A0-AF60-82AB72DA4CE1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Runtime.Api.Blizzard", "src\War3Net.Runtime.Api.Blizzard\War3Net.Runtime.Api.Blizzard.csproj", "{059EB9A6-AAD2-4A05-AFC2-EB8EF5B15AF9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Runtime.Api.Common", "src\War3Net.Runtime.Api.Common\War3Net.Runtime.Api.Common.csproj", "{6CEF015B-2711-47D9-BF80-5029AFDBCD56}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Runtime.Core", "src\War3Net.Runtime.Core\War3Net.Runtime.Core.csproj", "{3D4A9962-8F62-4783-A01D-9F15970F3B3A}"
-EndProject
-
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{11A2CA17-F0A5-416A-B80D-794D67A49891}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Build.Tests", "tests\War3Net.Build.Tests\War3Net.Build.Tests.csproj", "{BC48D49B-4C20-4122-BD31-D88B2421DAD8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Build.Core.Tests", "tests\War3Net.Build.Core.Tests\War3Net.Build.Core.Tests.csproj", "{C3305DA3-271C-472A-A873-B9DF0DF237CD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis.Tests", "tests\War3Net.CodeAnalysis.Tests\War3Net.CodeAnalysis.Tests.csproj", "{B69E2C4C-38E3-4F82-BC16-162F2BD0C684}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis.Decompilers.Tests", "tests\War3Net.CodeAnalysis.Decompilers.Tests\War3Net.CodeAnalysis.Decompilers.Tests.csproj", "{09465B00-FAE7-4329-895C-184A5628C6E5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis.Jass.Tests", "tests\War3Net.CodeAnalysis.Jass.Tests\War3Net.CodeAnalysis.Jass.Tests.csproj", "{6A8D67F1-D8C1-410D-A894-0F918E65F5C3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis.Transpilers.Tests", "tests\War3Net.CodeAnalysis.Transpilers.Tests\War3Net.CodeAnalysis.Transpilers.Tests.csproj", "{CC45BB6F-FAE6-4E89-A184-025221BD0CBA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis.VJass.Tests", "tests\War3Net.CodeAnalysis.VJass.Tests\War3Net.CodeAnalysis.VJass.Tests.csproj", "{C1C6E2AC-3F48-4508-A3F9-9EEA6C58B039}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Common.Tests", "tests\War3Net.Common.Tests\War3Net.Common.Tests.csproj", "{946A1A91-2643-412C-BE53-FEDEAE0B9C39}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Drawing.Blp.Tests", "tests\War3Net.Drawing.Blp.Tests\War3Net.Drawing.Blp.Tests.csproj", "{F5FBAAFE-0010-4333-8D34-39ACF94B6D52}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.IO.Casc.Tests", "tests\War3Net.IO.Casc.Tests\War3Net.IO.Casc.Tests.csproj", "{34B1DB3D-28C2-4467-B5CA-A81662E8FDB2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.IO.Compression.Tests", "tests\War3Net.IO.Compression.Tests\War3Net.IO.Compression.Tests.csproj", "{491F3BD8-659E-4C07-9D8F-4593B0E7A0A9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.IO.Mpq.Tests", "tests\War3Net.IO.Mpq.Tests\War3Net.IO.Mpq.Tests.csproj", "{09C7D345-4AD5-431B-8D2D-E0F766C89196}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.IO.Slk.Tests", "tests\War3Net.IO.Slk.Tests\War3Net.IO.Slk.Tests.csproj", "{6824E77A-F57A-4899-B862-BA35B2B12958}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Modeling.Tests", "tests\War3Net.Modeling.Tests\War3Net.Modeling.Tests.csproj", "{76E0C475-8882-4675-BCBB-B79B2291D5C5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Rendering.Tests", "tests\War3Net.Rendering.Tests\War3Net.Rendering.Tests.csproj", "{7ECDE15C-B8A0-4DBC-8C29-EFFEB04449F6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Replay.Tests", "tests\War3Net.Replay.Tests\War3Net.Replay.Tests.csproj", "{B9D05909-690F-47DB-8AD5-BC26DB3D9918}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Runtime.Tests", "tests\War3Net.Runtime.Tests\War3Net.Runtime.Tests.csproj", "{CF0BC392-23CC-4C63-BE1C-7B8D338EA08F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Runtime.Api.Blizzard.Tests", "tests\War3Net.Runtime.Api.Blizzard.Tests\War3Net.Runtime.Api.Blizzard.Tests.csproj", "{551E2D80-CD07-43D5-A62F-78B5F9CEC901}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Runtime.Api.Common.Tests", "tests\War3Net.Runtime.Api.Common.Tests\War3Net.Runtime.Api.Common.Tests.csproj", "{BA4DA988-4335-40FC-85A4-906E7B67B955}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Runtime.Core.Tests", "tests\War3Net.Runtime.Core.Tests\War3Net.Runtime.Core.Tests.csproj", "{8B06B247-8D3A-491A-8275-6A2AB6DAFAB6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.TestTools.UnitTesting", "tests\War3Net.TestTools.UnitTesting\War3Net.TestTools.UnitTesting.csproj", "{46DD6F2E-B864-4E30-B3EC-8EEFD1049E27}"
-EndProject
-
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "perf", "perf", "{A43B6E7E-5DCB-4CC4-9FB5-51F9FC3A69E9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.CodeAnalysis.Jass.Benchmarks", "perf\War3Net.CodeAnalysis.Jass.Benchmarks\War3Net.CodeAnalysis.Jass.Benchmarks.csproj", "{17735E26-A27E-42E1-ACC0-6C663207BA97}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Drawing.Blp.Benchmarks", "perf\War3Net.Drawing.Blp.Benchmarks\War3Net.Drawing.Blp.Benchmarks.csproj", "{B69FBE66-5A00-4ECA-92C9-DEC996655F4E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Modeling.Benchmarks", "perf\War3Net.Modeling.Benchmarks\War3Net.Modeling.Benchmarks.csproj", "{A3C35C70-B08C-4673-8120-A3D31B7F81CE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "War3Net.Runtime.Benchmarks", "perf\War3Net.Runtime.Benchmarks\War3Net.Runtime.Benchmarks.csproj", "{020F9BD0-FE06-4575-8952-82090673A0DD}"
-EndProject
-
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "submodules", "submodules", "{F40BB975-CDB3-46FC-B152-B9F107CD3476}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharp.lua", "submodules\CSharp.lua\CSharp.lua\CSharp.lua.csproj", "{95DF76BF-DA2D-4AC0-84F6-C3A7C7E36448}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharp.lua.CoreSystem", "submodules\CSharp.lua\CSharp.lua.CoreSystem\CSharp.lua.CoreSystem.csproj", "{E1533516-FE29-4F48-A402-4308E8CC3882}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastMDX", "submodules\FastMDX\FastMDX\FastMDX.csproj", "{81EC1CD4-62F5-4657-8901-CA2AA18D026C}"
-EndProject
-
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{3A0E70D5-5C24-46F6-A268-63D2737C47EF}"
- ProjectSection(SolutionItems) = preProject
- Directory.Build.props = Directory.Build.props
- EndProjectSection
-EndProject
-
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{A475185A-E870-4E08-A1D5-E9AC49D55811}"
- ProjectSection(SolutionItems) = preProject
- README.md = README.md
- EndProjectSection
-EndProject
-
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
-
-# src
-# War3Net.Build
- {1EDC8582-2B2C-4CBD-93FB-E4CBD85DC8CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1EDC8582-2B2C-4CBD-93FB-E4CBD85DC8CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1EDC8582-2B2C-4CBD-93FB-E4CBD85DC8CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1EDC8582-2B2C-4CBD-93FB-E4CBD85DC8CD}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Build.Core
- {D0149A53-7CED-4D50-9A9C-42EE41688829}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D0149A53-7CED-4D50-9A9C-42EE41688829}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D0149A53-7CED-4D50-9A9C-42EE41688829}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D0149A53-7CED-4D50-9A9C-42EE41688829}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.CodeAnalysis
- {4229042D-54E4-4D9C-AC5E-AB4BCA1549AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4229042D-54E4-4D9C-AC5E-AB4BCA1549AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4229042D-54E4-4D9C-AC5E-AB4BCA1549AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4229042D-54E4-4D9C-AC5E-AB4BCA1549AF}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.CodeAnalysis.Decompilers
- {64A4A189-398F-4A73-B770-D50A7EF1D8B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {64A4A189-398F-4A73-B770-D50A7EF1D8B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {64A4A189-398F-4A73-B770-D50A7EF1D8B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {64A4A189-398F-4A73-B770-D50A7EF1D8B3}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.CodeAnalysis.Jass
- {7C1425CC-E4C4-4EBF-B645-22D4775DC03A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7C1425CC-E4C4-4EBF-B645-22D4775DC03A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7C1425CC-E4C4-4EBF-B645-22D4775DC03A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7C1425CC-E4C4-4EBF-B645-22D4775DC03A}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.CodeAnalysis.Transpilers
- {3B5CB7A3-EAA7-47A5-9866-DC692541EEC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3B5CB7A3-EAA7-47A5-9866-DC692541EEC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3B5CB7A3-EAA7-47A5-9866-DC692541EEC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3B5CB7A3-EAA7-47A5-9866-DC692541EEC3}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.CodeAnalysis.VJass
- {BEE2EE9A-8AF1-443C-A62A-5F50F9A36D61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BEE2EE9A-8AF1-443C-A62A-5F50F9A36D61}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BEE2EE9A-8AF1-443C-A62A-5F50F9A36D61}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BEE2EE9A-8AF1-443C-A62A-5F50F9A36D61}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Common
- {2BB2862E-F10C-48DD-97C2-B508E425BD5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2BB2862E-F10C-48DD-97C2-B508E425BD5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2BB2862E-F10C-48DD-97C2-B508E425BD5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2BB2862E-F10C-48DD-97C2-B508E425BD5E}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Drawing.Blp
- {75A5929C-4828-4C97-858C-0893840C27C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {75A5929C-4828-4C97-858C-0893840C27C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {75A5929C-4828-4C97-858C-0893840C27C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {75A5929C-4828-4C97-858C-0893840C27C8}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.IO.Casc
- {82DF534F-E4FE-4E38-9B81-54BECB2B7461}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {82DF534F-E4FE-4E38-9B81-54BECB2B7461}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {82DF534F-E4FE-4E38-9B81-54BECB2B7461}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {82DF534F-E4FE-4E38-9B81-54BECB2B7461}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.IO.Compression
- {E7055A8C-A27B-4AC4-91EB-70DA65D4C385}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E7055A8C-A27B-4AC4-91EB-70DA65D4C385}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E7055A8C-A27B-4AC4-91EB-70DA65D4C385}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E7055A8C-A27B-4AC4-91EB-70DA65D4C385}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.IO.Mpq
- {BB33E313-B458-45AE-A18E-C0978C14CC43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BB33E313-B458-45AE-A18E-C0978C14CC43}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BB33E313-B458-45AE-A18E-C0978C14CC43}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BB33E313-B458-45AE-A18E-C0978C14CC43}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.IO.Slk
- {D1328289-F479-4181-8528-142A6AA50D8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D1328289-F479-4181-8528-142A6AA50D8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D1328289-F479-4181-8528-142A6AA50D8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D1328289-F479-4181-8528-142A6AA50D8B}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Modeling
- {C22C827D-7D88-4E6D-AC8A-2692979E2E53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C22C827D-7D88-4E6D-AC8A-2692979E2E53}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C22C827D-7D88-4E6D-AC8A-2692979E2E53}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C22C827D-7D88-4E6D-AC8A-2692979E2E53}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Rendering
- {D769C1C7-543A-43CC-B5BA-9810066FC37A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D769C1C7-543A-43CC-B5BA-9810066FC37A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D769C1C7-543A-43CC-B5BA-9810066FC37A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D769C1C7-543A-43CC-B5BA-9810066FC37A}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Replay
- {B158ED8F-9BFE-46FD-A39C-C3102CA52C95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B158ED8F-9BFE-46FD-A39C-C3102CA52C95}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B158ED8F-9BFE-46FD-A39C-C3102CA52C95}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B158ED8F-9BFE-46FD-A39C-C3102CA52C95}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Runtime
- {4A28E76B-DBA7-47A0-AF60-82AB72DA4CE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4A28E76B-DBA7-47A0-AF60-82AB72DA4CE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4A28E76B-DBA7-47A0-AF60-82AB72DA4CE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4A28E76B-DBA7-47A0-AF60-82AB72DA4CE1}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Runtime.Api.Blizzard
- {059EB9A6-AAD2-4A05-AFC2-EB8EF5B15AF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {059EB9A6-AAD2-4A05-AFC2-EB8EF5B15AF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {059EB9A6-AAD2-4A05-AFC2-EB8EF5B15AF9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {059EB9A6-AAD2-4A05-AFC2-EB8EF5B15AF9}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Runtime.Api.Common
- {6CEF015B-2711-47D9-BF80-5029AFDBCD56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6CEF015B-2711-47D9-BF80-5029AFDBCD56}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6CEF015B-2711-47D9-BF80-5029AFDBCD56}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6CEF015B-2711-47D9-BF80-5029AFDBCD56}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Runtime.Core
- {3D4A9962-8F62-4783-A01D-9F15970F3B3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3D4A9962-8F62-4783-A01D-9F15970F3B3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3D4A9962-8F62-4783-A01D-9F15970F3B3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3D4A9962-8F62-4783-A01D-9F15970F3B3A}.Release|Any CPU.Build.0 = Release|Any CPU
-
-# tests
-# War3Net.Build.Tests
- {BC48D49B-4C20-4122-BD31-D88B2421DAD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BC48D49B-4C20-4122-BD31-D88B2421DAD8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BC48D49B-4C20-4122-BD31-D88B2421DAD8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BC48D49B-4C20-4122-BD31-D88B2421DAD8}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Build.Core.Tests
- {C3305DA3-271C-472A-A873-B9DF0DF237CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C3305DA3-271C-472A-A873-B9DF0DF237CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C3305DA3-271C-472A-A873-B9DF0DF237CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C3305DA3-271C-472A-A873-B9DF0DF237CD}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.CodeAnalysis.Tests
- {B69E2C4C-38E3-4F82-BC16-162F2BD0C684}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B69E2C4C-38E3-4F82-BC16-162F2BD0C684}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B69E2C4C-38E3-4F82-BC16-162F2BD0C684}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B69E2C4C-38E3-4F82-BC16-162F2BD0C684}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.CodeAnalysis.Decompilers.Tests
- {09465B00-FAE7-4329-895C-184A5628C6E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {09465B00-FAE7-4329-895C-184A5628C6E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {09465B00-FAE7-4329-895C-184A5628C6E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {09465B00-FAE7-4329-895C-184A5628C6E5}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.CodeAnalysis.Jass.Tests
- {6A8D67F1-D8C1-410D-A894-0F918E65F5C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6A8D67F1-D8C1-410D-A894-0F918E65F5C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6A8D67F1-D8C1-410D-A894-0F918E65F5C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6A8D67F1-D8C1-410D-A894-0F918E65F5C3}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.CodeAnalysis.Transpilers.Tests
- {CC45BB6F-FAE6-4E89-A184-025221BD0CBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CC45BB6F-FAE6-4E89-A184-025221BD0CBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CC45BB6F-FAE6-4E89-A184-025221BD0CBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CC45BB6F-FAE6-4E89-A184-025221BD0CBA}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.CodeAnalysis.VJass.Tests
- {C1C6E2AC-3F48-4508-A3F9-9EEA6C58B039}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C1C6E2AC-3F48-4508-A3F9-9EEA6C58B039}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C1C6E2AC-3F48-4508-A3F9-9EEA6C58B039}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C1C6E2AC-3F48-4508-A3F9-9EEA6C58B039}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Common.Tests
- {946A1A91-2643-412C-BE53-FEDEAE0B9C39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {946A1A91-2643-412C-BE53-FEDEAE0B9C39}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {946A1A91-2643-412C-BE53-FEDEAE0B9C39}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {946A1A91-2643-412C-BE53-FEDEAE0B9C39}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Drawing.Blp.Tests
- {F5FBAAFE-0010-4333-8D34-39ACF94B6D52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F5FBAAFE-0010-4333-8D34-39ACF94B6D52}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F5FBAAFE-0010-4333-8D34-39ACF94B6D52}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F5FBAAFE-0010-4333-8D34-39ACF94B6D52}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.IO.Casc.Tests
- {34B1DB3D-28C2-4467-B5CA-A81662E8FDB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {34B1DB3D-28C2-4467-B5CA-A81662E8FDB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {34B1DB3D-28C2-4467-B5CA-A81662E8FDB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {34B1DB3D-28C2-4467-B5CA-A81662E8FDB2}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.IO.Compression.Tests
- {491F3BD8-659E-4C07-9D8F-4593B0E7A0A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {491F3BD8-659E-4C07-9D8F-4593B0E7A0A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {491F3BD8-659E-4C07-9D8F-4593B0E7A0A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {491F3BD8-659E-4C07-9D8F-4593B0E7A0A9}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.IO.Mpq.Tests
- {09C7D345-4AD5-431B-8D2D-E0F766C89196}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {09C7D345-4AD5-431B-8D2D-E0F766C89196}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {09C7D345-4AD5-431B-8D2D-E0F766C89196}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {09C7D345-4AD5-431B-8D2D-E0F766C89196}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.IO.Slk.Tests
- {6824E77A-F57A-4899-B862-BA35B2B12958}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6824E77A-F57A-4899-B862-BA35B2B12958}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6824E77A-F57A-4899-B862-BA35B2B12958}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6824E77A-F57A-4899-B862-BA35B2B12958}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Modeling.Tests
- {76E0C475-8882-4675-BCBB-B79B2291D5C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {76E0C475-8882-4675-BCBB-B79B2291D5C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {76E0C475-8882-4675-BCBB-B79B2291D5C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {76E0C475-8882-4675-BCBB-B79B2291D5C5}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Rendering.Tests
- {7ECDE15C-B8A0-4DBC-8C29-EFFEB04449F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7ECDE15C-B8A0-4DBC-8C29-EFFEB04449F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7ECDE15C-B8A0-4DBC-8C29-EFFEB04449F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7ECDE15C-B8A0-4DBC-8C29-EFFEB04449F6}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Replay.Tests
- {B9D05909-690F-47DB-8AD5-BC26DB3D9918}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B9D05909-690F-47DB-8AD5-BC26DB3D9918}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B9D05909-690F-47DB-8AD5-BC26DB3D9918}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B9D05909-690F-47DB-8AD5-BC26DB3D9918}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Runtime.Tests
- {CF0BC392-23CC-4C63-BE1C-7B8D338EA08F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CF0BC392-23CC-4C63-BE1C-7B8D338EA08F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CF0BC392-23CC-4C63-BE1C-7B8D338EA08F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CF0BC392-23CC-4C63-BE1C-7B8D338EA08F}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Runtime.Api.Blizzard.Tests
- {551E2D80-CD07-43D5-A62F-78B5F9CEC901}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {551E2D80-CD07-43D5-A62F-78B5F9CEC901}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {551E2D80-CD07-43D5-A62F-78B5F9CEC901}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {551E2D80-CD07-43D5-A62F-78B5F9CEC901}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Runtime.Api.Common.Tests
- {BA4DA988-4335-40FC-85A4-906E7B67B955}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BA4DA988-4335-40FC-85A4-906E7B67B955}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BA4DA988-4335-40FC-85A4-906E7B67B955}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BA4DA988-4335-40FC-85A4-906E7B67B955}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Runtime.Core.Tests
- {8B06B247-8D3A-491A-8275-6A2AB6DAFAB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8B06B247-8D3A-491A-8275-6A2AB6DAFAB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8B06B247-8D3A-491A-8275-6A2AB6DAFAB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8B06B247-8D3A-491A-8275-6A2AB6DAFAB6}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.TestTools.UnitTesting
- {46DD6F2E-B864-4E30-B3EC-8EEFD1049E27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {46DD6F2E-B864-4E30-B3EC-8EEFD1049E27}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {46DD6F2E-B864-4E30-B3EC-8EEFD1049E27}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {46DD6F2E-B864-4E30-B3EC-8EEFD1049E27}.Release|Any CPU.Build.0 = Release|Any CPU
-
-# perf
-# War3Net.CodeAnalysis.Jass.Benchmarks
- {17735E26-A27E-42E1-ACC0-6C663207BA97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {17735E26-A27E-42E1-ACC0-6C663207BA97}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {17735E26-A27E-42E1-ACC0-6C663207BA97}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {17735E26-A27E-42E1-ACC0-6C663207BA97}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Drawing.Blp.Benchmarks
- {B69FBE66-5A00-4ECA-92C9-DEC996655F4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B69FBE66-5A00-4ECA-92C9-DEC996655F4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B69FBE66-5A00-4ECA-92C9-DEC996655F4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B69FBE66-5A00-4ECA-92C9-DEC996655F4E}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Modeling.Benchmarks
- {A3C35C70-B08C-4673-8120-A3D31B7F81CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A3C35C70-B08C-4673-8120-A3D31B7F81CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A3C35C70-B08C-4673-8120-A3D31B7F81CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A3C35C70-B08C-4673-8120-A3D31B7F81CE}.Release|Any CPU.Build.0 = Release|Any CPU
-# War3Net.Runtime.Benchmarks
- {020F9BD0-FE06-4575-8952-82090673A0DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {020F9BD0-FE06-4575-8952-82090673A0DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {020F9BD0-FE06-4575-8952-82090673A0DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {020F9BD0-FE06-4575-8952-82090673A0DD}.Release|Any CPU.Build.0 = Release|Any CPU
-
-# submodules
-# CSharp.lua
- {95DF76BF-DA2D-4AC0-84F6-C3A7C7E36448}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {95DF76BF-DA2D-4AC0-84F6-C3A7C7E36448}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {95DF76BF-DA2D-4AC0-84F6-C3A7C7E36448}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {95DF76BF-DA2D-4AC0-84F6-C3A7C7E36448}.Release|Any CPU.Build.0 = Release|Any CPU
-# CSharp.lua.CoreSystem
- {E1533516-FE29-4F48-A402-4308E8CC3882}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E1533516-FE29-4F48-A402-4308E8CC3882}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E1533516-FE29-4F48-A402-4308E8CC3882}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E1533516-FE29-4F48-A402-4308E8CC3882}.Release|Any CPU.Build.0 = Release|Any CPU
-# FastMDX
- {81EC1CD4-62F5-4657-8901-CA2AA18D026C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {81EC1CD4-62F5-4657-8901-CA2AA18D026C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {81EC1CD4-62F5-4657-8901-CA2AA18D026C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {81EC1CD4-62F5-4657-8901-CA2AA18D026C}.Release|Any CPU.Build.0 = Release|Any CPU
-
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
-
-# src
- {1EDC8582-2B2C-4CBD-93FB-E4CBD85DC8CD} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {D0149A53-7CED-4D50-9A9C-42EE41688829} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {4229042D-54E4-4D9C-AC5E-AB4BCA1549AF} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {64A4A189-398F-4A73-B770-D50A7EF1D8B3} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {7C1425CC-E4C4-4EBF-B645-22D4775DC03A} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {3B5CB7A3-EAA7-47A5-9866-DC692541EEC3} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {BEE2EE9A-8AF1-443C-A62A-5F50F9A36D61} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {2BB2862E-F10C-48DD-97C2-B508E425BD5E} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {75A5929C-4828-4C97-858C-0893840C27C8} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {82DF534F-E4FE-4E38-9B81-54BECB2B7461} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {E7055A8C-A27B-4AC4-91EB-70DA65D4C385} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {BB33E313-B458-45AE-A18E-C0978C14CC43} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {D1328289-F479-4181-8528-142A6AA50D8B} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {C22C827D-7D88-4E6D-AC8A-2692979E2E53} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {D769C1C7-543A-43CC-B5BA-9810066FC37A} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {B158ED8F-9BFE-46FD-A39C-C3102CA52C95} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {4A28E76B-DBA7-47A0-AF60-82AB72DA4CE1} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {059EB9A6-AAD2-4A05-AFC2-EB8EF5B15AF9} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {6CEF015B-2711-47D9-BF80-5029AFDBCD56} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
- {3D4A9962-8F62-4783-A01D-9F15970F3B3A} = {14550F94-CB5A-40D1-95C7-6DBEFA3E96AC}
-
-# tests
- {BC48D49B-4C20-4122-BD31-D88B2421DAD8} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {C3305DA3-271C-472A-A873-B9DF0DF237CD} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {B69E2C4C-38E3-4F82-BC16-162F2BD0C684} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {09465B00-FAE7-4329-895C-184A5628C6E5} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {6A8D67F1-D8C1-410D-A894-0F918E65F5C3} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {CC45BB6F-FAE6-4E89-A184-025221BD0CBA} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {C1C6E2AC-3F48-4508-A3F9-9EEA6C58B039} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {946A1A91-2643-412C-BE53-FEDEAE0B9C39} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {F5FBAAFE-0010-4333-8D34-39ACF94B6D52} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {34B1DB3D-28C2-4467-B5CA-A81662E8FDB2} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {491F3BD8-659E-4C07-9D8F-4593B0E7A0A9} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {09C7D345-4AD5-431B-8D2D-E0F766C89196} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {6824E77A-F57A-4899-B862-BA35B2B12958} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {76E0C475-8882-4675-BCBB-B79B2291D5C5} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {7ECDE15C-B8A0-4DBC-8C29-EFFEB04449F6} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {B9D05909-690F-47DB-8AD5-BC26DB3D9918} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {CF0BC392-23CC-4C63-BE1C-7B8D338EA08F} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {551E2D80-CD07-43D5-A62F-78B5F9CEC901} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {BA4DA988-4335-40FC-85A4-906E7B67B955} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {8B06B247-8D3A-491A-8275-6A2AB6DAFAB6} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
- {46DD6F2E-B864-4E30-B3EC-8EEFD1049E27} = {11A2CA17-F0A5-416A-B80D-794D67A49891}
-
-# perf
- {17735E26-A27E-42E1-ACC0-6C663207BA97} = {A43B6E7E-5DCB-4CC4-9FB5-51F9FC3A69E9}
- {B69FBE66-5A00-4ECA-92C9-DEC996655F4E} = {A43B6E7E-5DCB-4CC4-9FB5-51F9FC3A69E9}
- {A3C35C70-B08C-4673-8120-A3D31B7F81CE} = {A43B6E7E-5DCB-4CC4-9FB5-51F9FC3A69E9}
- {020F9BD0-FE06-4575-8952-82090673A0DD} = {A43B6E7E-5DCB-4CC4-9FB5-51F9FC3A69E9}
-
-# submodules
- {95DF76BF-DA2D-4AC0-84F6-C3A7C7E36448} = {F40BB975-CDB3-46FC-B152-B9F107CD3476}
- {E1533516-FE29-4F48-A402-4308E8CC3882} = {F40BB975-CDB3-46FC-B152-B9F107CD3476}
- {81EC1CD4-62F5-4657-8901-CA2AA18D026C} = {F40BB975-CDB3-46FC-B152-B9F107CD3476}
-
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {318B261C-6F0C-4B3B-B29E-2990956B9D01}
- EndGlobalSection
-EndGlobal
diff --git a/War3Net.slnx b/War3Net.slnx
new file mode 100644
index 00000000..af7fda7f
--- /dev/null
+++ b/War3Net.slnx
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/War3NetPublish.slnf b/War3NetPublish.slnf
index c5590e85..c7655d82 100644
--- a/War3NetPublish.slnf
+++ b/War3NetPublish.slnf
@@ -1,6 +1,6 @@
{
"solution": {
- "path": "War3Net.sln",
+ "path": "War3Net.slnx",
"projects": [
"src\\War3Net.Build.Core\\War3Net.Build.Core.csproj",
"src\\War3Net.Build\\War3Net.Build.csproj",
diff --git a/War3NetStable.slnf b/War3NetStable.slnf
index 85564d0e..d37e8472 100644
--- a/War3NetStable.slnf
+++ b/War3NetStable.slnf
@@ -1,6 +1,6 @@
{
"solution": {
- "path": "War3Net.sln",
+ "path": "War3Net.slnx",
"projects": [
"src\\War3Net.Build.Core\\War3Net.Build.Core.csproj",
"src\\War3Net.Build\\War3Net.Build.csproj",
From 5c80c6ccbd1af4082c0bf6b3c336f1c550ef5465 Mon Sep 17 00:00:00 2001
From: Drake53 <49623303+Drake53@users.noreply.github.com>
Date: Sat, 4 Jul 2026 11:43:58 +0200
Subject: [PATCH 3/6] Add .NET 10.0 targets.
---
Directory.Build.props | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index 06a6896b..db8cbcb3 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -32,7 +32,7 @@
enable
- net6.0
- net6.0;net6.0-windows
+ net6.0;net10.0
+ net6.0;net6.0-windows;net10.0;net10.0-windows
\ No newline at end of file
From 23d7a0559a29a231138430a0492aaab77e86143a Mon Sep 17 00:00:00 2001
From: Drake53 <49623303+Drake53@users.noreply.github.com>
Date: Sat, 4 Jul 2026 11:55:15 +0200
Subject: [PATCH 4/6] Add v6.0.1 and v6.0.2 entries to changelogs.
---
docs/changelogs/War3Net.Build.Core.changelog.md | 7 +++++++
docs/changelogs/War3Net.Build.changelog.md | 7 +++++++
docs/changelogs/War3Net.CodeAnalysis.Jass.changelog.md | 7 +++++++
3 files changed, 21 insertions(+)
diff --git a/docs/changelogs/War3Net.Build.Core.changelog.md b/docs/changelogs/War3Net.Build.Core.changelog.md
index 95d5542a..20bb036d 100644
--- a/docs/changelogs/War3Net.Build.Core.changelog.md
+++ b/docs/changelogs/War3Net.Build.Core.changelog.md
@@ -1,5 +1,12 @@
# War3Net.Build.Core Changelog
+## v6.0.2
+### Breaking changes
+- Updated target framework from .NET 5.0 to .NET 6.0.
+
+## v6.0.1
+No functional changes; package readme and metadata updated for nuget.org presentation.
+
## v6.0.0
### Breaking changes
- The EscapedStringProvider class has been moved to War3Net.CodeAnalysis.Jass.
diff --git a/docs/changelogs/War3Net.Build.changelog.md b/docs/changelogs/War3Net.Build.changelog.md
index 017ed5dd..2c223ef4 100644
--- a/docs/changelogs/War3Net.Build.changelog.md
+++ b/docs/changelogs/War3Net.Build.changelog.md
@@ -1,5 +1,12 @@
# War3Net.Build Changelog
+## v6.0.2
+### Breaking changes
+- Updated target framework from .NET 5.0 to .NET 6.0.
+
+## v6.0.1
+No functional changes; package readme and metadata updated for nuget.org presentation.
+
## v6.0.0
### Breaking changes
- MapScriptBuilder methods have been renamed and now write to an IndentedTextWriter instead of returning a syntax class.
diff --git a/docs/changelogs/War3Net.CodeAnalysis.Jass.changelog.md b/docs/changelogs/War3Net.CodeAnalysis.Jass.changelog.md
index cc5b44cd..ade2a9e9 100644
--- a/docs/changelogs/War3Net.CodeAnalysis.Jass.changelog.md
+++ b/docs/changelogs/War3Net.CodeAnalysis.Jass.changelog.md
@@ -1,5 +1,12 @@
# War3Net.CodeAnalysis.Jass Changelog
+## v6.0.2
+### Breaking changes
+- Updated target framework from .NET 5.0 to .NET 6.0.
+
+## v6.0.1
+No functional changes; package readme and metadata updated for nuget.org presentation.
+
## v6.0.0
### Breaking changes
- Breaking changes have been documented in [the migration guide](../guides/jass-migration-guide-v5-to-v6.md)
From b036c04714e09e8a509a77db4336fb94d71008b5 Mon Sep 17 00:00:00 2001
From: Drake53 <49623303+Drake53@users.noreply.github.com>
Date: Sat, 4 Jul 2026 12:01:05 +0200
Subject: [PATCH 5/6] Add a changelog for War3Net.IO.Mpq (AI-generated, may be
inaccurate).
---
docs/changelogs/War3Net.IO.Mpq.changelog.md | 133 ++++++++++++++++++++
1 file changed, 133 insertions(+)
create mode 100644 docs/changelogs/War3Net.IO.Mpq.changelog.md
diff --git a/docs/changelogs/War3Net.IO.Mpq.changelog.md b/docs/changelogs/War3Net.IO.Mpq.changelog.md
new file mode 100644
index 00000000..840f1483
--- /dev/null
+++ b/docs/changelogs/War3Net.IO.Mpq.changelog.md
@@ -0,0 +1,133 @@
+# War3Net.IO.Mpq Changelog
+
+## v6.0.2
+### Breaking changes
+- `Attributes.Crc32s` changed from `List` to `List`, matching the actual unsigned nature of CRC32 values.
+- Updated target framework from .NET 5.0 to .NET 6.0.
+### Changes
+- Replaced the vulnerable DotNetZip dependency with `System.IO.Compression` and an internal CRC32 implementation.
+
+## v6.0.1
+No functional changes; package readme and metadata updated for nuget.org presentation.
+
+## v6.0.0
+No functional changes; version bumped to align with the rest of War3Net's v6.0.0 release.
+
+## v5.8.1
+### Bugfixes
+- Fixed `MpqStream` not disposing its underlying stream, so `using` statements around an `MpqStream` now properly release the base stream.
+
+## v5.8.0
+### Changes
+- Added `MpqStreamFactory` class as the entry point for constructing `MpqStream` instances, replacing direct use of internal `MpqStream` constructors.
+- Added `MpqStreamUtils` class with `Compress` and `Encrypt` methods, for compressing/encrypting raw data into the block-and-header layout used by MPQ files independently of building a full archive.
+- Added `IMpqCompressor` interface and `MpqZLibCompressor` implementation, allowing a custom compression algorithm to be plugged into `MpqStreamUtils.Compress`.
+- Added `MpqEncryptionUtils` class, exposing `CalculateEncryptionSeed` publicly.
+### Bugfixes
+- Fixed an encrypted single-unit `MpqStream` not being decrypted correctly because the check used the uncompressed size instead of the compressed size.
+- Fixed `MpqFileFlags.BlockOffsetAdjustedKey` handling not being applied correctly in some cases.
+
+## v5.5.2
+### Changes
+- Improved parallel read performance by using `MemoryMappedFile` for archive access.
+
+## v5.5.0
+### Changes
+- `MpqStream` now uses the `CopyTo` extension method internally.
+- `MpqHeader.Parse` gained an optional `leaveOpen` parameter.
+### Bugfixes
+- Fixed a typo affecting behavior in the Mpq read path.
+
+## v5.4.5
+### Changes
+- Made the listfile/attributes/signature binary read/write extension methods public.
+- `MpqFile` now checks `MpqStream.CanRead` instead of the removed `MpqStream.CanBeDecrypted`.
+- Moved known `MpqCompressionType` values into a public extension method.
+### Bugfixes
+- `MpqStream` with the `SingleUnit` flag no longer buffers data eagerly in its constructor, and now validates `CanRead` and throws on read/seek (instead of in the constructor) when block positions are invalid, avoiding premature exceptions when opening certain archives.
+
+## v5.2.1
+### Bugfixes
+- Fixed incorrect hash table size calculation when creating an archive, which could produce a hash table larger than `MpqTable.MaxSize` or ignore the configured `HashTableSize` (fixes #14).
+
+## v5.2.0
+### Changes
+- Implemented `MpqArchiveExtensions.VerifySignature`, including an overload that verifies against Blizzard's known public keys automatically.
+- Added support for signing MPQ archives on creation via `MpqArchiveCreateOptions.SignaturePrivateKey`.
+- Added support for the `Unk0x04` attributes flag in `AttributesFlags`/`Attributes`, including verification support in `VerifyAttributes`.
+- Doubled `MpqTable.MaxSize`.
+
+## v5.1.3
+### Changes
+- Removed obsolete `FileProvider.FileExists`, `FileProvider.GetFile`, and `FileProvider.EnumerateFiles` methods.
+- `MpqArchiveBuilder.SaveTo(string, ...)` overloads now use `FileProvider.CreateFileAndFolder` instead of `File.Create`, so parent folders are created automatically.
+### Bugfixes
+- Minor nullable-reference and encoding-usage cleanups in `MpqStream`.
+
+## v5.1.2
+### Changes
+- `MpqArchiveBuilder` is no longer sealed.
+
+## v5.1.1
+### Changes
+- Minor fixes across `BlockTable`, `HashTable`, `MpqArchive`, `MpqArchiveBuilder`, and `MpqArchiveCreateOptions`.
+
+## v5.1.0
+### Changes
+- `MpqArchiveBuilder` refactored: constructors and `AddFile`/`RemoveFile`/`SaveTo` methods reworked around the new `MpqArchiveCreateOptions`-based creation API.
+### Bugfixes
+- Fixed inconsistent casing across several public members.
+- Fixed encryption seed calculation.
+- Various other minor MPQ fixes (`FileProvider`, `MpqEntry`, `MpqStream`, `StormBuffer`).
+
+## v5.0.0
+### Breaking changes
+- `Attributes` changed from a static extension-method holder to an instantiable sealed class with `Unk`, `Flags`, `Crc32s`, and `DateTimes` properties.
+- Added `AttributesFlags` enum.
+- `MpqArchive` creation now takes an `MpqArchiveCreateOptions` object instead of separate `hashTableSize`/`blockSize`/`writeArchiveFirst` constructor parameters; removed the `DefaultBlockSize` constant.
+- `MpqFile.Name` no longer throws when unset.
+### Changes
+- `MpqFile` now implements `IComparable`, `IComparable`, and `IEquatable`, backed by new `MpqFileComparer`, replacing the old `IsSameAs` method.
+- `MpqArchiveBuilder.AddFile` gained an overload accepting explicit `MpqFileFlags`; new `SaveTo` overloads accepting `MpqArchiveCreateOptions`.
+
+## v1.2.2
+### Changes
+- `MpqFile.MpqStream` property is now public.
+- Added `leaveOpen` parameter to the `MpqArchive` constructor, `MpqArchive.Create`, and `MpqArchiveBuilder.SaveTo`, to control whether the underlying stream is disposed.
+
+## v1.2.1
+### Changes
+- Added `MpqArchiveBuilder.RemoveFile(ulong)` overload, alongside the existing `RemoveFile(string)`.
+
+## v1.2.0
+### Changes
+- Added `MpqArchiveBuilder` class, for incrementally building or modifying an `MpqArchive` (supports adding/removing files and saving to a new archive).
+- `MpqArchive.HashTableSize` property is now public.
+
+## v1.1.0
+### Changes
+- Moved `FileProvider` class into the `War3Net.IO.Mpq` namespace.
+- Added `Attributes` class with `VerifyAttributes` extension method, to verify the MPQ "(attributes)" file.
+- Added file-existence and open methods to `MpqFile`.
+### Bugfixes
+- Fixed `MpqFile.OpenRead` to properly close the underlying `MpqStream` after copying its contents.
+### Breaking changes
+- `FileProvider.OpenNewWrite` has been renamed to `CreateFileAndFolder`.
+
+## v1.0.1
+### Bugfixes
+- Various MPQ library bugfixes in `MpqArchive`, `MpqHeader`, and `StormBuffer`.
+
+## v1.0.0
+### Changes
+- Added `MpqOrphanedFile` class to represent entries in the hash table with no corresponding filename.
+- Added `TryGetHashString` method.
+### Bugfixes
+- Fixed "Unable to read beyond the end of the stream" exception in `BlockTable`.
+- Fixed "Unable to determine encryption seed" exception.
+- Fixed "Invalid enum" exception in `MpqArchive`.
+- Fixed `MpqParserException` when parsing Wurst maps.
+- Fixed exception when listfile contains garbage data.
+- `MpqEntry.Filename` is now correctly null if no `MpqHash` references the entry.
+- Orphaned `MpqEntries` no longer use deleted `MpqHashes`.
+- Improved `MpqHeader` exception messages.
From 38cb4c36ea52335f0b1fedc3379c87dfa9f45769 Mon Sep 17 00:00:00 2001
From: Drake53 <49623303+Drake53@users.noreply.github.com>
Date: Sat, 4 Jul 2026 12:23:05 +0200
Subject: [PATCH 6/6] Update README
---
README.md | 45 ++++++++++++++++++++++++++++++++++-----------
1 file changed, 34 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index d10147d1..e457a2ff 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,7 @@
[](https://github.com/Drake53/War3Net/issues)
[](https://github.com/Drake53/War3Net/pulls)
[](https://github.com/Drake53/War3Net/blob/master/LICENSE)
+[](https://github.com/Drake53/War3Net/releases)
---
@@ -18,8 +19,11 @@
What is War3Net? •
Vision •
- Built with War3Net •
+ Components •
Packages •
+ Command-Line Tool •
+ VS Code Extension •
+ Built with War3Net •
Roadmap •
Contributing •
License
@@ -43,16 +47,21 @@ War3Net aims to be the definitive .NET foundation for Warcraft III tooling—bui
- **Correctness** — Byte-for-byte accuracy with Blizzard's implementations. No guesswork.
- **Compatibility** — .NET 6+ for broad OS support, including Windows 7/8.
-### Built with War3Net
+### Components
-> **Disclaimer:** Projects listed here are independent and not affiliated with, endorsed by, or maintained by the creator of War3Net. Use them at your own discretion.
+Three major components are included in War3Net:
-| Project | Description |
-| ------- | ----------- |
-| [Maya WarTex](https://github.com/wiselencave/maya-wartex) | Autodesk Maya plug-in for BLP texture loading via [War3Net.Drawing.Blp](https://github.com/Drake53/War3Net/tree/master/src/War3Net.Drawing.Blp). |
-| [Project name](https://github.com/Drake53/War3Net) | This is a placeholder, serving as an example of how to insert the name, url, and description of your project |
+- **[NuGet packages](#packages)** — A collection of NuGet packages, each covering a Warcraft III file format or a related concern (MPQ, BLP, JASS, map building, and more). These are the foundation everything else is built on.
+- **[Command-line tool](#command-line-tool)** — `w3n`, a single CLI that exposes the modules' functionality for scripting, CI, or terminal use.
+- **[VS Code extension](#vscode-extension)** — War3Net Toolkit, which brings those same file formats into the editor, built on top of the CLI.
-*Using War3Net in your project? Open a PR to add it here!*
+### Command-Line Tool
+
+*Coming soon™*
+
+### VS Code Extension
+
+*Coming soon™*
### Packages
@@ -91,13 +100,27 @@ Some of the above packages are based on code from other repositories:
- *[War3Net.Drawing.Blp]:* [SereniaBLPLib](https://github.com/WoW-Tools/SereniaBLPLib)
- *[War3Net.IO.Compression] and [War3Net.IO.Mpq]:* [MpqTool](https://github.com/hazzik/MpqTool)
+### Built with War3Net
+
+> **Disclaimer:** Projects listed here are independent and not affiliated with, endorsed by, or maintained by the creator of War3Net. Use them at your own discretion.
+
+| Project | Description |
+| ------- | ----------- |
+| [Maya WarTex](https://github.com/wiselencave/maya-wartex) | Autodesk Maya plug-in for BLP texture loading via [War3Net.Drawing.Blp](https://github.com/Drake53/War3Net/tree/master/src/War3Net.Drawing.Blp). |
+
+*Using War3Net in your project? Open a PR to add it here!*
+
### Roadmap
-Two major initiatives are in progress:
+Three major initiatives are in progress:
+
+**War3Net CLI** — Exposing War3Net's functionality to users outside of the .NET ecosystem.
+- `w3n` CLI exposing commands for MPQ, BLP, MDX, JASS, and more
+- End goals: Full War3Net functionality covered by the CLI • VSCode extension
**JASS Language Suite** — Bringing modern IDE tooling to JASS.
-- Fault-tolerant parsing, semantic analysis, and LSP support
-- End goals: Intelligent script adaptation across game versions • VSCode extension
+- Fault-tolerant parsing, semantic analysis, LSP support, and a debugger
+- End goals: Intelligent script adaptation across game versions • Integration in the CLI and extension
**Warcraft III Runtime** — Run maps without the game.
- Native JASS VM, C# natives, headless rendering