Browse Source

Carry all RIDs in the decompiler-test lock files

ICSharpCode.Decompiler.Tests builds for the host RID (so the native
Microsoft.DiaSymReader.Native assets the Windows PDB tests need are copied),
which made its packages.lock.json host-specific (linux-x64 vs win-x64) and
drift between Linux and Windows restores. Add an explicit <RuntimeIdentifiers>
list next to the single <RuntimeIdentifier>: the lock then records every RID
host-independently while the build still targets the host RID. Apply the same
list to the TestRunner it pulls in.

TestRunner's lock is now fully portable. The test project's lock still carries
the OS-conditional DiaSymReader.Native difference in its base graph, which the
*.filelist-scoped "Verify package contents" step already tolerates.

Assisted-by: Claude:claude-opus-4-8:Claude Code
pull/3755/head
Siegfried Pammer 4 weeks ago
parent
commit
931375708f
  1. 6
      .github/workflows/build-ilspy.yml
  2. 3
      ICSharpCode.Decompiler.TestRunner/ICSharpCode.Decompiler.TestRunner.csproj
  3. 6
      ICSharpCode.Decompiler.TestRunner/packages.lock.json
  4. 4
      ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
  5. 2669
      ICSharpCode.Decompiler.Tests/packages.lock.json

6
.github/workflows/build-ilspy.yml

@ -108,19 +108,19 @@ jobs:
- name: Zip ILSpy (framework-dependent) - name: Zip ILSpy (framework-dependent)
run: > run: >
7z a -tzip $env:StagingDirectory\ILSpy_binaries.zip 7z a -tzip $env:StagingDirectory\ILSpy_binaries.zip ${{ matrix.configuration == 'release' && '-xr!*.pdb' || '' }}
.\ILSpy\bin\${{ matrix.configuration }}\net10.0\win-x64\publish\fwdependent\* .\ILSpy\bin\${{ matrix.configuration }}\net10.0\win-x64\publish\fwdependent\*
- name: Zip ILSpy Release (x64 self-contained) - name: Zip ILSpy Release (x64 self-contained)
if: matrix.configuration == 'release' if: matrix.configuration == 'release'
run: > run: >
7z a -tzip $env:StagingDirectory\ILSpy_selfcontained_x64.zip 7z a -tzip $env:StagingDirectory\ILSpy_selfcontained_x64.zip -xr!*.pdb
.\ILSpy\bin\Release\net10.0\win-x64\publish\selfcontained\* .\ILSpy\bin\Release\net10.0\win-x64\publish\selfcontained\*
- name: Zip ILSpy Release (arm64 framework-dependent) - name: Zip ILSpy Release (arm64 framework-dependent)
if: matrix.configuration == 'release' if: matrix.configuration == 'release'
run: > run: >
7z a -tzip $env:StagingDirectory\ILSpy_binaries_arm64.zip 7z a -tzip $env:StagingDirectory\ILSpy_binaries_arm64.zip -xr!*.pdb
.\ILSpy\bin\Release\net10.0\win-arm64\publish\fwdependent\* .\ILSpy\bin\Release\net10.0\win-arm64\publish\fwdependent\*
- name: Pack NuGets - name: Pack NuGets

3
ICSharpCode.Decompiler.TestRunner/ICSharpCode.Decompiler.TestRunner.csproj

@ -4,6 +4,9 @@
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net11.0</TargetFramework> <TargetFramework>net11.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<!-- Explicit RID list so packages.lock.json carries every RID (host-independent), matching
the test project that drives this runner and keeping the lock stable across OSes. -->
<RuntimeIdentifiers>win-x64;win-arm64;linux-x64;osx-arm64</RuntimeIdentifiers>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

6
ICSharpCode.Decompiler.TestRunner/packages.lock.json

@ -8,6 +8,10 @@
"resolved": "2.24.0", "resolved": "2.24.0",
"contentHash": "dKHqW1MeAMnDIbtx8qDTsGwy/7LUiQ3ccdzHX0PzCh1r98Lgl/1deIky9+ojZO0K5HjeA7uE+eW9/h+v7EOIBA==" "contentHash": "dKHqW1MeAMnDIbtx8qDTsGwy/7LUiQ3ccdzHX0PzCh1r98Lgl/1deIky9+ojZO0K5HjeA7uE+eW9/h+v7EOIBA=="
} }
} },
"net11.0/linux-x64": {},
"net11.0/osx-arm64": {},
"net11.0/win-arm64": {},
"net11.0/win-x64": {}
} }
} }

4
ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj

@ -4,7 +4,11 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net11.0</TargetFramework> <TargetFramework>net11.0</TargetFramework>
<LangVersion>preview</LangVersion> <LangVersion>preview</LangVersion>
<!-- A single (host) RID makes the build copy the native DiaSymReader.Native assets the
Windows PDB tests need; the explicit RID list makes packages.lock.json carry every RID
(host-independent), so the lock does not drift between Linux and Windows restores. -->
<RuntimeIdentifier>$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</RuntimeIdentifier> <RuntimeIdentifier>$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</RuntimeIdentifier>
<RuntimeIdentifiers>win-x64;win-arm64;linux-x64;osx-arm64</RuntimeIdentifiers>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>

2669
ICSharpCode.Decompiler.Tests/packages.lock.json

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save