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 @@ [![GitHub issues](https://img.shields.io/github/issues/Drake53/War3Net.svg)](https://github.com/Drake53/War3Net/issues) [![GitHub pull requests](https://img.shields.io/github/issues-pr/Drake53/War3Net.svg)](https://github.com/Drake53/War3Net/pulls) [![GitHub license](https://img.shields.io/github/license/Drake53/War3Net.svg)](https://github.com/Drake53/War3Net/blob/master/LICENSE) +[![Latest release](https://img.shields.io/github/v/release/Drake53/War3Net)](https://github.com/Drake53/War3Net/releases) --- @@ -18,8 +19,11 @@ What is War3Net?Vision • - Built with War3Net • + ComponentsPackages • + Command-Line Tool • + VS Code Extension • + Built with War3NetRoadmapContributingLicense @@ -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