From 91f0373e48b41945ca1aec6355c7be59567635c1 Mon Sep 17 00:00:00 2001 From: Christoph Wille Date: Thu, 22 Oct 2026 09:07:55 +0200 Subject: [PATCH] Migrate ILSpy.sln to the SLNX solution format Produced by "dotnet sln ILSpy.sln migrate" and renamed to the repo's casing so the Linux and macOS CI jobs find it. The per-project configuration mappings of the old file are not carried over because they all mapped every solution platform to Any CPU, which is the SLNX default for .csproj projects. ILSpy.Installer.sln stays in the old format. Every script, workflow, solution filter and doc that named ILSpy.sln now names ILSpy.slnx. Assisted-by: Claude:claude-fable-5-1:Claude Code --- .editorconfig | 2 +- .github/workflows/build-ilspy.yml | 8 +- .vscode/settings.json | 4 +- AGENTS.md | 8 +- BuildTools/bom-strip.ps1 | 2 +- BuildTools/pre-commit | 6 +- BuildTools/update-assemblyinfo.ps1 | 2 +- ICSharpCode.Decompiler.Tests/AGENTS.md | 2 +- .../CSharp/Syntax/README.md | 2 +- .../ILSpy.BamlDecompiler.Tests.Windows.csproj | 2 +- ILSpy.Desktop.slnf | 2 +- .../ILSpy.Tests.Windows.csproj | 2 +- ILSpy.XPlat.slnf | 2 +- ILSpy.sln | 260 ------------------ ILSpy.slnx | 35 +++ README.md | 4 +- TestTools/README.md | 2 +- build.ps1 | 4 +- clean.ps1 | 6 +- decompiler-nuget-demos.verso | 2 +- publishlocaldev.ps1 | 2 +- restore.ps1 | 4 +- updatedeps.ps1 | 2 +- 23 files changed, 70 insertions(+), 295 deletions(-) delete mode 100644 ILSpy.sln create mode 100644 ILSpy.slnx diff --git a/.editorconfig b/.editorconfig index 81512e2e8e4..7272e72bd6a 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,7 +10,7 @@ guidelines = 110 tab_width = 4 end_of_line = crlf -# .net tooling writes the BOM to resx files on running dotnet build ILSpy.sln regardless, +# .net tooling writes the BOM to resx files on running dotnet build ILSpy.slnx regardless, # so we should direct text editors to NOT change the file [*.resx] charset = utf-8-bom diff --git a/.github/workflows/build-ilspy.yml b/.github/workflows/build-ilspy.yml index ce67fd11ce9..6c0fbf6a685 100644 --- a/.github/workflows/build-ilspy.yml +++ b/.github/workflows/build-ilspy.yml @@ -83,19 +83,19 @@ jobs: - name: Restore the application run: > - dotnet restore ILSpy.sln + dotnet restore ILSpy.slnx /p:RestoreEnablePackagePruning=false /p:Configuration=${{ matrix.configuration }} /p:Platform="$env:BuildPlatform" - name: Build run: > - dotnet build -mt ILSpy.sln --no-restore + dotnet build -mt ILSpy.slnx --no-restore -c ${{ matrix.configuration }} /p:Platform="$env:BuildPlatform" - name: Format check - run: dotnet-format whitespace --verify-no-changes --verbosity detailed ILSpy.sln + run: dotnet-format whitespace --verify-no-changes --verbosity detailed ILSpy.slnx - name: Execute unit tests id: unit-tests @@ -107,7 +107,7 @@ jobs: env: DOTNET_gcServer: 0 run: > - dotnet test --solution ilspy.sln + dotnet test --solution ILSpy.slnx --configuration ${{ matrix.configuration }} --no-build --report-trx --results-directory test-results/${{ matrix.configuration }} diff --git a/.vscode/settings.json b/.vscode/settings.json index 35586b9cd3b..74dc7d1986a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,8 +3,8 @@ "files.exclude": { "ILSpy-tests/**": true }, - "dotnet.defaultSolution": "ILSpy.sln", + "dotnet.defaultSolution": "ILSpy.slnx", "dotrush.roslyn.projectOrSolutionFiles": [ - "ILSpy.sln" + "ILSpy.slnx" ], } \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 84e4bf5c2ae..1dece0de80d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -45,7 +45,7 @@ Windows-only frontends, packaging, and tests: - `ILSpy.Installer/` — WiX installer (`net472`) - `ILSpy.BamlDecompiler.Tests/` — BAML-decompiler tests, still WPF/Windows-bound (`net11.0-windows`) -Solutions & filters: `ILSpy.sln` builds everything; `ILSpy.XPlat.slnf` is the decompiler libs + `ilspycmd` + their tests (no UI — the Linux CI target); `ILSpy.Desktop.slnf` is the UI plus its dependencies and tests; `ILSpy.Installer.sln` covers the legacy packaging, and `ILSpy.VSExtensions.slnx` the VS 2022 extension (`dotnet build`-able). +Solutions & filters: `ILSpy.slnx` builds everything; `ILSpy.XPlat.slnf` is the decompiler libs + `ilspycmd` + their tests (no UI — the Linux CI target); `ILSpy.Desktop.slnf` is the UI plus its dependencies and tests; `ILSpy.Installer.sln` covers the legacy packaging, and `ILSpy.VSExtensions.slnx` the VS 2022 extension (`dotnet build`-able). ## ILSpy-tests submodule @@ -67,14 +67,14 @@ Solutions & filters: `ILSpy.sln` builds everything; `ILSpy.XPlat.slnf` is the de ## Build / restore -- **Use the repo-root pwsh scripts for these tasks, not raw `dotnet` commands** -- they carry the flags that keep the repo consistent and all target `ILSpy.sln` (extra args are forwarded): +- **Use the repo-root pwsh scripts for these tasks, not raw `dotnet` commands** -- they carry the flags that keep the repo consistent and all target `ILSpy.slnx` (extra args are forwarded): - **restore** -> `restore.ps1` - **build** -> `build.ps1` (`-Configuration Debug|Release`) - **update deps / regenerate lock files** -> `updatedeps.ps1` - **format** -> `BuildTools/format.ps1` - **clean** -> `clean.ps1`; **publish** -> `publish.ps1` - **Why this matters:** `restore.ps1` and `updatedeps.ps1` pass `-p:RestoreEnablePackagePruning=false`, so they keep every `packages.lock.json` whole. A bare `dotnet restore`/`dotnet build` (which restores implicitly) **prunes** the lock files -- silently stripping the transitive/all-RID/DiaSymReader entries the repo deliberately carries -- and surfaces as a spurious `packages.lock.json` diff. Restore with `restore.ps1`, then build with `build.ps1 --no-restore`; if a bare build ever leaves a pruned `packages.lock.json` modified, discard it (`git checkout -- `). -- **Every project generates a `packages.lock.json`** (`RestorePackagesWithLockFile` is set in the root `Directory.Build.props`); CI NuGet caching keys off these. After adding or bumping a `PackageReference`/`PackageVersion`, regenerate the lock files with `updatedeps.ps1` (i.e. `dotnet restore ILSpy.sln --force-evaluate -p:RestoreEnablePackagePruning=false`) and commit them. The core libraries additionally set `RestoreLockedMode`, so a plain restore there fails until the lock file is refreshed. +- **Every project generates a `packages.lock.json`** (`RestorePackagesWithLockFile` is set in the root `Directory.Build.props`); CI NuGet caching keys off these. After adding or bumping a `PackageReference`/`PackageVersion`, regenerate the lock files with `updatedeps.ps1` (i.e. `dotnet restore ILSpy.slnx --force-evaluate -p:RestoreEnablePackagePruning=false`) and commit them. The core libraries additionally set `RestoreLockedMode`, so a plain restore there fails until the lock file is refreshed. - The pre-commit hook runs `dotnet format` on the **whole solution** -- it IS the formatter. **Always let the hook run; never commit `.cs` with `--no-verify`.** Bypassing it lands unformatted code and forces history-wide reformat rebases later. `--no-verify` is acceptable only for commits that touch no `.cs` (e.g. `.yml`/`.md`-only). - **Line endings are a Windows-only concern.** The repo is `* text=auto`, so blobs are stored LF and git renormalizes on commit. On **Windows**, save new files CRLF so the hook's `git add -u` doesn't churn EOLs. On **Linux/macOS**, leave new files LF and do **not** `unix2dos` -- forcing CRLF there makes the whole working tree show as phantom-modified in `git status` (and is normalized back to LF on commit anyway). - **Partial commits need stash-and-pop.** The format hook only auto-formats when the staged set equals the working tree. Stash unstaged remainder before committing a subset. @@ -100,7 +100,7 @@ Never put more than one C# language feature on one branch. ## Test discipline -- Always run the test suite with `--report-trx` so failures survive: `dotnet test --solution ILSpy.sln --report-trx` (the repo pins Microsoft.Testing.Platform in `global.json`; the bare `dotnet test ` form is the old VSTest syntax). Don't dismiss failures as flaky without first reproducing in isolation, then running repeatedly. +- Always run the test suite with `--report-trx` so failures survive: `dotnet test --solution ILSpy.slnx --report-trx` (the repo pins Microsoft.Testing.Platform in `global.json`; the bare `dotnet test ` form is the old VSTest syntax). Don't dismiss failures as flaky without first reproducing in isolation, then running repeatedly. - **`ILSpy.Tests` is serial by design** (one headless Avalonia session and one process-wide app composition per test host), so it cannot use more than one core in-process. The local optimization is **sharding across processes**: `./runuitests.ps1` runs the built Debug suite as 4 concurrent `dotnet test` hosts with disjoint filters (about 2.5x faster than one host); CI runs the same script with 2 shards on Linux/macOS. For one fixture use `dotnet test --project ILSpy.Tests/ILSpy.Tests.csproj --no-build --filter "FullyQualifiedName~MyFixture"` (the `--treenode-filter` / `--filter-class` forms are rejected by the NUnit bridge). - The decompiler test suite (test kinds, fixture structure, how to write tests, the compiler-matrix model) is documented in [ICSharpCode.Decompiler.Tests/AGENTS.md](ICSharpCode.Decompiler.Tests/AGENTS.md). - After matcher / rewriter edits, **run the relevant tests, not just the build.** `dotnet build` green ≠ behaviour correct. diff --git a/BuildTools/bom-strip.ps1 b/BuildTools/bom-strip.ps1 index e5b8db264ee..74965cf720e 100644 --- a/BuildTools/bom-strip.ps1 +++ b/BuildTools/bom-strip.ps1 @@ -29,7 +29,7 @@ $Dotfiles = @( $AllowedExts = @( '.bat','.config','.cs','.csproj','.css','.filelist','.fs','.html','.il', '.ipynb','.js','.json','.less','.manifest','.md','.projitems','.props', - '.ps1','.psd1','.shproj','.sln','.slnf','.svg','.template', + '.ps1','.psd1','.shproj','.sln','.slnf','.slnx','.svg','.template', '.tt', '.txt','.vb','.vsct','.vsixlangpack','.wxl','.xaml','.xml','.xshd','.yml' ) diff --git a/BuildTools/pre-commit b/BuildTools/pre-commit index 4a133d6ac6e..2f6c4a26ef8 100755 --- a/BuildTools/pre-commit +++ b/BuildTools/pre-commit @@ -36,11 +36,11 @@ DOTNET_FORMAT="$DOTNET_PATH/dotnet-format$EXE_SUFFIX" "$DOTNET_FORMAT" --version if [ "${1:-}" = "--format" ]; then # called via format.bat - "$DOTNET_FORMAT" whitespace --no-restore --verbosity normal ILSpy.sln + "$DOTNET_FORMAT" whitespace --no-restore --verbosity normal ILSpy.slnx elif git diff --quiet --ignore-submodules; then - "$DOTNET_FORMAT" whitespace --no-restore --verbosity normal ILSpy.sln + "$DOTNET_FORMAT" whitespace --no-restore --verbosity normal ILSpy.slnx git add -u -- \*\*.cs else echo Partial commit: only verifying formatting - exec "$DOTNET_FORMAT" whitespace --verify-no-changes --no-restore --verbosity normal ILSpy.sln + exec "$DOTNET_FORMAT" whitespace --verify-no-changes --no-restore --verbosity normal ILSpy.slnx fi diff --git a/BuildTools/update-assemblyinfo.ps1 b/BuildTools/update-assemblyinfo.ps1 index 681e550a797..182a28e8ab3 100644 --- a/BuildTools/update-assemblyinfo.ps1 +++ b/BuildTools/update-assemblyinfo.ps1 @@ -115,7 +115,7 @@ try { return 0; } - if (-not (Test-File "ILSpy.sln")) { + if (-not (Test-File "ILSpy.slnx")) { Write-Error "Working directory must be the ILSpy repo root!"; return 2; } diff --git a/ICSharpCode.Decompiler.Tests/AGENTS.md b/ICSharpCode.Decompiler.Tests/AGENTS.md index 4aa7e1e2102..31fb042c364 100644 --- a/ICSharpCode.Decompiler.Tests/AGENTS.md +++ b/ICSharpCode.Decompiler.Tests/AGENTS.md @@ -114,7 +114,7 @@ produced for that compiler's IL. This beats hand-running csc versions. ## Running ``` -dotnet test --solution ILSpy.sln --report-trx --filter FullyQualifiedName~PrettyTestRunner.SwitchExpressions +dotnet test --solution ILSpy.slnx --report-trx --filter FullyQualifiedName~PrettyTestRunner.SwitchExpressions ``` (Microsoft.Testing.Platform syntax; see root `AGENTS.md` "Test discipline".) A failing diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/README.md b/ICSharpCode.Decompiler/CSharp/Syntax/README.md index ae7b6d548f7..1c2683ed87f 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/README.md +++ b/ICSharpCode.Decompiler/CSharp/Syntax/README.md @@ -171,7 +171,7 @@ A few things that are easy to get wrong when editing the generator or the nodes reference the expected symbol (e.g. `Slots.Foo`) in code and let the build fail or pass. - **Validate with the DEBUG test run.** `CheckInvariant` is `[Conditional("DEBUG")]` and the test host runs DEBUG, so after any AST or transform change run the Pretty suite in DEBUG: - `OPENSSL_ENABLE_SHA1_SIGNATURES=1 dotnet test --solution ILSpy.sln --report-trx --no-build -c Debug + `OPENSSL_ENABLE_SHA1_SIGNATURES=1 dotnet test --solution ILSpy.slnx --report-trx --no-build -c Debug --filter "FullyQualifiedName~PrettyTestRunner"`. It checks the output is byte-identical **and** exercises `CheckInvariant` across every node shape -- a green run is the real signal, not a green build. diff --git a/ILSpy.BamlDecompiler.Tests.Windows/ILSpy.BamlDecompiler.Tests.Windows.csproj b/ILSpy.BamlDecompiler.Tests.Windows/ILSpy.BamlDecompiler.Tests.Windows.csproj index 1fa27da82b7..99a5f09140e 100644 --- a/ILSpy.BamlDecompiler.Tests.Windows/ILSpy.BamlDecompiler.Tests.Windows.csproj +++ b/ILSpy.BamlDecompiler.Tests.Windows/ILSpy.BamlDecompiler.Tests.Windows.csproj @@ -8,7 +8,7 @@ net11.0-windows diff --git a/ILSpy.Desktop.slnf b/ILSpy.Desktop.slnf index 906305e90bf..ef34bcfabad 100644 --- a/ILSpy.Desktop.slnf +++ b/ILSpy.Desktop.slnf @@ -1,6 +1,6 @@ { "solution": { - "path": "ILSpy.sln", + "path": "ILSpy.slnx", "projects": [ "ICSharpCode.BamlDecompiler\\ICSharpCode.BamlDecompiler.csproj", "ICSharpCode.Decompiler.TestRunner\\ICSharpCode.Decompiler.TestRunner.csproj", diff --git a/ILSpy.Tests.Windows/ILSpy.Tests.Windows.csproj b/ILSpy.Tests.Windows/ILSpy.Tests.Windows.csproj index c55d3670ae0..2434f9390df 100644 --- a/ILSpy.Tests.Windows/ILSpy.Tests.Windows.csproj +++ b/ILSpy.Tests.Windows/ILSpy.Tests.Windows.csproj @@ -4,7 +4,7 @@ net11.0-windows true diff --git a/ILSpy.XPlat.slnf b/ILSpy.XPlat.slnf index 42d3936e997..7203135cbee 100644 --- a/ILSpy.XPlat.slnf +++ b/ILSpy.XPlat.slnf @@ -1,6 +1,6 @@ { "solution": { - "path": "ILSpy.sln", + "path": "ILSpy.slnx", "projects": [ "ICSharpCode.ILSpyCmd\\ICSharpCode.ILSpyCmd.csproj", "ICSharpCode.ILSpyCmd.Tests\\ICSharpCode.ILSpyCmd.Tests.csproj", diff --git a/ILSpy.sln b/ILSpy.sln deleted file mode 100644 index b75eea7a1de..00000000000 --- a/ILSpy.sln +++ /dev/null @@ -1,260 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 18 -VisualStudioVersion = 18.4.11620.152 -MinimumVisualStudioVersion = 15.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "doc", "doc", "{F45DB999-7E72-4000-B5AD-3A7B485A0896}" - ProjectSection(SolutionItems) = preProject - doc\Command Line.txt = doc\Command Line.txt - doc\ILAst.txt = doc\ILAst.txt - doc\IntPtr.txt = doc\IntPtr.txt - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.Decompiler", "ICSharpCode.Decompiler\ICSharpCode.Decompiler.csproj", "{984CC812-9470-4A13-AFF9-CC44068D666C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.Decompiler.Generators", "ICSharpCode.Decompiler.Generators\ICSharpCode.Decompiler.Generators.csproj", "{0792B524-622B-4B9D-8027-3531ED6A42EB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.Decompiler.Tests", "ICSharpCode.Decompiler.Tests\ICSharpCode.Decompiler.Tests.csproj", "{FEC0DA52-C4A6-4710-BE36-B484A20C5E22}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.ILSpyCmd", "ICSharpCode.ILSpyCmd\ICSharpCode.ILSpyCmd.csproj", "{743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.Decompiler.PowerShell", "ICSharpCode.Decompiler.PowerShell\ICSharpCode.Decompiler.PowerShell.csproj", "{50060E0C-FA25-41F4-B72F-8490324EC9F0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.Decompiler.TestRunner", "ICSharpCode.Decompiler.TestRunner\ICSharpCode.Decompiler.TestRunner.csproj", "{4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.ILSpyX", "ICSharpCode.ILSpyX\ICSharpCode.ILSpyX.csproj", "{F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.BamlDecompiler", "ICSharpCode.BamlDecompiler\ICSharpCode.BamlDecompiler.csproj", "{81A30182-3378-4952-8880-F44822390040}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D0858E90-DCD5-4FD9-AA53-7262FAB8BEDB}" - ProjectSection(SolutionItems) = preProject - .editorconfig = .editorconfig - Directory.Build.props = Directory.Build.props - Directory.Packages.props = Directory.Packages.props - global.json = global.json - NuGet.config = NuGet.config - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpy", "ILSpy\ILSpy.csproj", "{2C085978-F6EC-4684-B987-802D4CFEC3E9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpy.Tests", "ILSpy.Tests\ILSpy.Tests.csproj", "{818CA2D4-175F-4DC1-9C83-189D2CA74ABA}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpy.Tests.Windows", "ILSpy.Tests.Windows\ILSpy.Tests.Windows.csproj", "{20AF56FB-DC0F-4048-B75D-83FEE0D669B2}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpy.ReadyToRun", "ILSpy.ReadyToRun\ILSpy.ReadyToRun.csproj", "{AF43A431-AAF7-4758-A180-42C378AE0FB2}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestPlugin", "TestPlugin\TestPlugin.csproj", "{62B21FB3-2A55-4F51-8892-9D6B9864BC22}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpy.BamlDecompiler.Tests", "ILSpy.BamlDecompiler.Tests\ILSpy.BamlDecompiler.Tests.csproj", "{DE2934C2-3FA4-41AA-8A08-502957ED0FE4}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpy.BamlDecompiler.Tests.Windows", "ILSpy.BamlDecompiler.Tests.Windows\ILSpy.BamlDecompiler.Tests.Windows.csproj", "{7A5C3CEF-0744-4643-BA1E-7AE6610FF269}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.ILSpyCmd.Tests", "ICSharpCode.ILSpyCmd.Tests\ICSharpCode.ILSpyCmd.Tests.csproj", "{042FE5F2-3C0A-4B99-A268-D1917CC67B47}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x64.ActiveCfg = Debug|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x64.Build.0 = Debug|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x86.ActiveCfg = Debug|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x86.Build.0 = Debug|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|Any CPU.Build.0 = Release|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x64.ActiveCfg = Release|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x64.Build.0 = Release|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x86.ActiveCfg = Release|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x86.Build.0 = Release|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Debug|x64.ActiveCfg = Debug|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Debug|x64.Build.0 = Debug|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Debug|x86.ActiveCfg = Debug|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Debug|x86.Build.0 = Debug|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Release|Any CPU.Build.0 = Release|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Release|x64.ActiveCfg = Release|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Release|x64.Build.0 = Release|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Release|x86.ActiveCfg = Release|Any CPU - {0792B524-622B-4B9D-8027-3531ED6A42EB}.Release|x86.Build.0 = Release|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|x64.ActiveCfg = Debug|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|x64.Build.0 = Debug|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|x86.ActiveCfg = Debug|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|x86.Build.0 = Debug|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|Any CPU.Build.0 = Release|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|x64.ActiveCfg = Release|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|x64.Build.0 = Release|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|x86.ActiveCfg = Release|Any CPU - {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|x86.Build.0 = Release|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Debug|x64.ActiveCfg = Debug|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Debug|x64.Build.0 = Debug|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Debug|x86.ActiveCfg = Debug|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Debug|x86.Build.0 = Debug|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Release|Any CPU.Build.0 = Release|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Release|x64.ActiveCfg = Release|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Release|x64.Build.0 = Release|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Release|x86.ActiveCfg = Release|Any CPU - {743B439A-E7AD-4A0A-BAB6-222E1EA83C6D}.Release|x86.Build.0 = Release|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Debug|x64.ActiveCfg = Debug|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Debug|x64.Build.0 = Debug|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Debug|x86.ActiveCfg = Debug|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Debug|x86.Build.0 = Debug|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Release|Any CPU.Build.0 = Release|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Release|x64.ActiveCfg = Release|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Release|x64.Build.0 = Release|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Release|x86.ActiveCfg = Release|Any CPU - {50060E0C-FA25-41F4-B72F-8490324EC9F0}.Release|x86.Build.0 = Release|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Debug|x64.ActiveCfg = Debug|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Debug|x64.Build.0 = Debug|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Debug|x86.ActiveCfg = Debug|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Debug|x86.Build.0 = Debug|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Release|Any CPU.Build.0 = Release|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Release|x64.ActiveCfg = Release|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Release|x64.Build.0 = Release|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Release|x86.ActiveCfg = Release|Any CPU - {4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Release|x86.Build.0 = Release|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Debug|x64.ActiveCfg = Debug|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Debug|x64.Build.0 = Debug|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Debug|x86.ActiveCfg = Debug|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Debug|x86.Build.0 = Debug|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Release|Any CPU.Build.0 = Release|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Release|x64.ActiveCfg = Release|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Release|x64.Build.0 = Release|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Release|x86.ActiveCfg = Release|Any CPU - {F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}.Release|x86.Build.0 = Release|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Debug|x64.ActiveCfg = Debug|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Debug|x64.Build.0 = Debug|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Debug|x86.ActiveCfg = Debug|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Debug|x86.Build.0 = Debug|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Release|Any CPU.Build.0 = Release|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Release|x64.ActiveCfg = Release|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Release|x64.Build.0 = Release|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Release|x86.ActiveCfg = Release|Any CPU - {81A30182-3378-4952-8880-F44822390040}.Release|x86.Build.0 = Release|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Debug|x64.ActiveCfg = Debug|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Debug|x64.Build.0 = Debug|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Debug|x86.ActiveCfg = Debug|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Debug|x86.Build.0 = Debug|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Release|Any CPU.Build.0 = Release|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Release|x64.ActiveCfg = Release|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Release|x64.Build.0 = Release|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Release|x86.ActiveCfg = Release|Any CPU - {2C085978-F6EC-4684-B987-802D4CFEC3E9}.Release|x86.Build.0 = Release|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Debug|x64.ActiveCfg = Debug|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Debug|x64.Build.0 = Debug|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Debug|x86.ActiveCfg = Debug|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Debug|x86.Build.0 = Debug|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Release|Any CPU.Build.0 = Release|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Release|x64.ActiveCfg = Release|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Release|x64.Build.0 = Release|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Release|x86.ActiveCfg = Release|Any CPU - {818CA2D4-175F-4DC1-9C83-189D2CA74ABA}.Release|x86.Build.0 = Release|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Debug|x64.ActiveCfg = Debug|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Debug|x64.Build.0 = Debug|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Debug|x86.ActiveCfg = Debug|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Debug|x86.Build.0 = Debug|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Release|Any CPU.Build.0 = Release|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Release|x64.ActiveCfg = Release|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Release|x64.Build.0 = Release|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Release|x86.ActiveCfg = Release|Any CPU - {20AF56FB-DC0F-4048-B75D-83FEE0D669B2}.Release|x86.Build.0 = Release|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Debug|x64.ActiveCfg = Debug|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Debug|x64.Build.0 = Debug|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Debug|x86.ActiveCfg = Debug|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Debug|x86.Build.0 = Debug|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Release|Any CPU.Build.0 = Release|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Release|x64.ActiveCfg = Release|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Release|x64.Build.0 = Release|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Release|x86.ActiveCfg = Release|Any CPU - {AF43A431-AAF7-4758-A180-42C378AE0FB2}.Release|x86.Build.0 = Release|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Debug|x64.ActiveCfg = Debug|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Debug|x64.Build.0 = Debug|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Debug|x86.ActiveCfg = Debug|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Debug|x86.Build.0 = Debug|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Release|Any CPU.ActiveCfg = Release|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Release|Any CPU.Build.0 = Release|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Release|x64.ActiveCfg = Release|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Release|x64.Build.0 = Release|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Release|x86.ActiveCfg = Release|Any CPU - {62B21FB3-2A55-4F51-8892-9D6B9864BC22}.Release|x86.Build.0 = Release|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Debug|x64.ActiveCfg = Debug|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Debug|x64.Build.0 = Debug|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Debug|x86.ActiveCfg = Debug|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Debug|x86.Build.0 = Debug|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Release|Any CPU.Build.0 = Release|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Release|x64.ActiveCfg = Release|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Release|x64.Build.0 = Release|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Release|x86.ActiveCfg = Release|Any CPU - {DE2934C2-3FA4-41AA-8A08-502957ED0FE4}.Release|x86.Build.0 = Release|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Debug|x64.ActiveCfg = Debug|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Debug|x64.Build.0 = Debug|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Debug|x86.ActiveCfg = Debug|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Debug|x86.Build.0 = Debug|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Release|Any CPU.Build.0 = Release|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Release|x64.ActiveCfg = Release|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Release|x64.Build.0 = Release|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Release|x86.ActiveCfg = Release|Any CPU - {7A5C3CEF-0744-4643-BA1E-7AE6610FF269}.Release|x86.Build.0 = Release|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Debug|Any CPU.Build.0 = Debug|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Debug|x64.ActiveCfg = Debug|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Debug|x64.Build.0 = Debug|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Debug|x86.ActiveCfg = Debug|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Debug|x86.Build.0 = Debug|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Release|Any CPU.ActiveCfg = Release|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Release|Any CPU.Build.0 = Release|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Release|x64.ActiveCfg = Release|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Release|x64.Build.0 = Release|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Release|x86.ActiveCfg = Release|Any CPU - {042FE5F2-3C0A-4B99-A268-D1917CC67B47}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ILSpy.slnx b/ILSpy.slnx new file mode 100644 index 00000000000..60c1d66c273 --- /dev/null +++ b/ILSpy.slnx @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md index 688c17fe755..77b3d3100a6 100644 --- a/README.md +++ b/README.md @@ -48,10 +48,10 @@ How to build - Execute `git submodule update --init --recursive` to download the ILSpy-Tests submodule (used by some test cases). - Install Visual Studio (documented version: 18.0/2026). You need the following workload components: - Workload ".NET Desktop Development". This workload includes the .NET Framework 4.8 SDK and the .NET Framework 4.7.2 targeting pack, as well as the [.NET 10.0 SDK](https://dotnet.microsoft.com/download/dotnet/10.0) (ILSpy.csproj targets .NET 10.0, but we have net472 projects too). Our unit tests require [.NET 11.0 SDK](https://dotnet.microsoft.com/download/dotnet/11.0). - - Workload "Visual Studio extension development" (Note: ILSpy.VSExtensions.slnx is separate from ILSpy.sln and thus this workload is optional) + - Workload "Visual Studio extension development" (Note: ILSpy.VSExtensions.slnx is separate from ILSpy.slnx and thus this workload is optional) - Individual Component "MSVC v143 - VS 2022 C++ x64/x86 build tools" (or similar) - _The VC++ toolset is optional_; if present it is used for `editbin.exe` to modify the stack size used by ILSpy.exe from 1MB to 16MB, because the decompiler makes heavy use of recursion, where small stack sizes lead to problems in very complex methods. -- Open ILSpy.sln in Visual Studio. +- Open ILSpy.slnx in Visual Studio. - NuGet package restore will automatically download further dependencies - Run project "ILSpy" for the ILSpy UI - Use the Visual Studio "Test Explorer" to see/run the tests diff --git a/TestTools/README.md b/TestTools/README.md index 928d06fc9b3..05210f0d426 100644 --- a/TestTools/README.md +++ b/TestTools/README.md @@ -13,7 +13,7 @@ in-repo test suite cannot: it decompiles fixtures we wrote, these decompile what They are [file-based apps](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/sdk#file-based-apps): single `.cs` files run directly by the SDK, no project, no solution entry. They are not built by -`ILSpy.sln` and not run by CI. Requirements: the .NET SDK from `global.json` (or newer) and, for +`ILSpy.slnx` and not run by CI. Requirements: the .NET SDK from `global.json` (or newer) and, for the sweep script, PowerShell 7 (`pwsh`) - both cross-platform. `Directory.Build.props` / `Directory.Packages.props` in this folder are intentionally near-empty: diff --git a/build.ps1 b/build.ps1 index efb990de233..26ab7303ea0 100644 --- a/build.ps1 +++ b/build.ps1 @@ -1,5 +1,5 @@ #!/usr/bin/env pwsh -# Build ILSpy.sln. Defaults to Debug; pass -Configuration Release for a release build. +# Build ILSpy.slnx. Defaults to Debug; pass -Configuration Release for a release build. # Extra arguments are forwarded to `dotnet build` (e.g. ./build.ps1 -Configuration Release --no-restore). param( [ValidateSet('Debug', 'Release')] @@ -7,4 +7,4 @@ param( ) $ErrorActionPreference = 'Stop' $env:OPENSSL_ENABLE_SHA1_SIGNATURES = '1' -dotnet build -mt ILSpy.sln -c $Configuration "-p:Platform=Any CPU" @args +dotnet build -mt ILSpy.slnx -c $Configuration "-p:Platform=Any CPU" @args diff --git a/clean.ps1 b/clean.ps1 index 160be6ec898..a953c643de0 100644 --- a/clean.ps1 +++ b/clean.ps1 @@ -1,6 +1,6 @@ #!/usr/bin/env pwsh -# Clean the Debug and Release build outputs of ILSpy.sln. +# Clean the Debug and Release build outputs of ILSpy.slnx. $ErrorActionPreference = 'Stop' $env:OPENSSL_ENABLE_SHA1_SIGNATURES = '1' -dotnet clean ILSpy.sln -c Debug "-p:Platform=Any CPU" @args -dotnet clean ILSpy.sln -c Release "-p:Platform=Any CPU" @args +dotnet clean ILSpy.slnx -c Debug "-p:Platform=Any CPU" @args +dotnet clean ILSpy.slnx -c Release "-p:Platform=Any CPU" @args diff --git a/decompiler-nuget-demos.verso b/decompiler-nuget-demos.verso index f8d3f26d1a9..94aa0fd46ef 100644 --- a/decompiler-nuget-demos.verso +++ b/decompiler-nuget-demos.verso @@ -35,7 +35,7 @@ { "id": "c44c4ce4-6430-4087-b926-8e905103e112", "type": "markdown", - "source": "You must have compiled **ILSpy.sln** first (run \u0022dotnet build ilspy.sln\u0022). Make sure to modify **basePath** to your repository path." + "source": "You must have compiled **ILSpy.slnx** first (run \u0022dotnet build ILSpy.slnx\u0022). Make sure to modify **basePath** to your repository path." }, { "id": "f0695e89-e072-4406-bac3-5d49affe1237", diff --git a/publishlocaldev.ps1 b/publishlocaldev.ps1 index 9f00d210ec1..544f8d36861 100644 --- a/publishlocaldev.ps1 +++ b/publishlocaldev.ps1 @@ -5,7 +5,7 @@ $env:OPENSSL_ENABLE_SHA1_SIGNATURES = '1' $configuration = "Debug" -dotnet build ./ILSpy.sln -c $configuration +dotnet build ./ILSpy.slnx -c $configuration $output_x64 = "./ILSpy/bin/$configuration/net10.0/win-x64/publish/fwdependent" diff --git a/restore.ps1 b/restore.ps1 index e075b914d53..1ba20ed3c05 100644 --- a/restore.ps1 +++ b/restore.ps1 @@ -1,6 +1,6 @@ #!/usr/bin/env pwsh -# Restore all NuGet packages for ILSpy.sln, honouring the committed packages.lock.json files. +# Restore all NuGet packages for ILSpy.slnx, honouring the committed packages.lock.json files. # Use updatedeps.ps1 instead when you have changed a PackageVersion and need to refresh the locks. $ErrorActionPreference = 'Stop' $env:OPENSSL_ENABLE_SHA1_SIGNATURES = '1' -dotnet restore ILSpy.sln -p:RestoreEnablePackagePruning=false @args +dotnet restore ILSpy.slnx -p:RestoreEnablePackagePruning=false @args diff --git a/updatedeps.ps1 b/updatedeps.ps1 index e8e3eccd4e7..61a6126ab68 100644 --- a/updatedeps.ps1 +++ b/updatedeps.ps1 @@ -4,4 +4,4 @@ # then commit the updated lock files. $ErrorActionPreference = 'Stop' $env:OPENSSL_ENABLE_SHA1_SIGNATURES = '1' -dotnet restore ILSpy.sln --force-evaluate -p:RestoreEnablePackagePruning=false @args +dotnet restore ILSpy.slnx --force-evaluate -p:RestoreEnablePackagePruning=false @args