Skip to content

Bump AsmResolver.DotNet from 6.0.0-beta.5 to 6.0.0#1166

Open
dependabot[bot] wants to merge 1 commit into
alpha-developmentfrom
dependabot/nuget/alpha-development/AsmResolver.DotNet-6.0.0
Open

Bump AsmResolver.DotNet from 6.0.0-beta.5 to 6.0.0#1166
dependabot[bot] wants to merge 1 commit into
alpha-developmentfrom
dependabot/nuget/alpha-development/AsmResolver.DotNet-6.0.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github May 18, 2026

Updated AsmResolver.DotNet from 6.0.0-beta.5 to 6.0.0.

Release notes

Sourced from AsmResolver.DotNet's releases.

6.0.0

After 2 years of development, v6.0.0 is officially here!

This version focuses on five key milestones:

  • Expanded Architecture Support: A new Platform abstraction enables support for more architectures, including ARM32 and ARM64. Furthermore, this version revamps the entire PE file building mechanism, and introduces TemplatedPEFileBuilder as a flexible foundation for building native Windows PEs and mixed-mode .NET modules.

  • Multi-Assembly Processing: A single .NET assembly is rarely fully self-contained and typically references code in external assemblies (e.g., DLLs). This version introduces RuntimeContext, which mimics an AppDomain or AssemblyLoadContext. It is responsible for automating assembly resolution and shared metadata caching, and significantly improves .NET cross-binary processing.

  • API Simplification: The API has undergone many Quality-of-Life improvements, removing many redundant interfaces and namespaces, adding more NRT annotations, and improving AOT trimming support. Furthermore, it is no longer required to manually import metadata as AsmResolver now auto-importing references at build time.

  • Improved Portability: With the help of @​MonoMod, we now support more build targets, including .NET Framework 3.5. We thereby extend compatibility to legacy environments like older versions of Unity/Mono.

  • Performance Boosts: Next to RuntimeContext's shared caching model and more lazy evaluation, we now leverage Span<T>, source generators, and other modern .NET features in more places, delivering significantly faster PE processing with fewer allocations and lowering memory consumption across the board.

We've seen a huge uptick in the number of contributors, bug testers and new users over this period. A huge thank you to all of you! Without you this release wouldn't have been possible!

Migrating from v5.x

Migrating from v5.x requires addressing breaking changes. See the Migration Guide for more information.

Full Changelog

Changelog is relative to v5.5.1.

General Changes

12 changes

Improvements

  • Remove System.Text.Json as a hard dependency for older .NET (FX) targets (#​450, #​538).
  • Remove many redundant interfaces (e.g., IPEFile and IPEImage) (#​445, #​561, #​562).
  • Flatten many namespaces, drastically reducing the required using directives for typical use (#​446, #​560).
  • Use EmptyErrorListener.Instance for reading input files by default (#​472, #​564).
  • Add IInputFile::BaseAddress (a1af121)
  • Add IReadOnlyList<T> explicitly to collection classes for better compatibility with lower .NET targets (62ed463)
  • Add PatchContext::WriterBase (#​653)

Performance

  • Improve the internal mechanisms for lazy-initialization using source generated lazy properties, significantly reducing the number of allocations across the entire library (#​683)
  • Use built-in memory-mapped file APIs on newer .NET build targets (#​619, thanks @​teo-tsirpanis)
  • Optimize BinaryStreamWriter for .NET 10+ targets (#​695, thanks @​Sergio0694).
  • Add Utf8String::CreateUnsafe factory method which avoids cloning many small byte arrays (#​709, thanks @​Windows10CE)
  • Let Utf8String implement ISpanFormattable and IUtf8SpanFormattable (#​699, thanks @​Sergio0694).

... (truncated)

6.0.0-rc.1

This is the release candidate for 6.0.0, addressing some important regressions/shortcomings found in beta.6. Note that with this release the API design will be frozen, and only improvements/bug fixes will be implemented until full release.

Improvements

  • Add NullAssemblyResolver and PathAssemblyResolver (#​721, thanks @​js6pak)
  • Optimize CorLibTypeFactory.FromType to avoid many unnecessary string allocations (#​717, thanks @​wondercrash).
  • Add ImportWith methods with more specific return types (#​720, thanks @​js6pak).
  • Add support for IMemberDescriptor equality checks in SignatureComparer (#​722, thanks @​js6pak).
  • Add missing NRT attributes for various TryResolve methods (e2bf223392c433e27b1ae2455da864a384601176).
  • Relax restrictions on input corlib for CorLibTypeFactory, making it easier to create one yourself (367968a73ab33e4fed98812c2f7662bbd8c96e9a)
  • Remove redundant factory methods and remove params overloads in favor of using more explicit collection expressions for parameter types.

Bug Fixes

  • Fix an issue where TargetRuntimeProber would crash with an ArgumentNullException when using AsmResolver in a .NET FX host (#​723).
  • Fix an issue where debug data directories would not be read properly when files are loaded using MMIO (#​718, thanks @​js6pak).
  • Fix an issue where TypeSignature::IsAssignableTo and friends did not use the signature comparer of the provided RuntimeContext (0484a392827493a4c6d6db2b20ed4e7a48034be9)
  • Fix an issue where MetadataTable::TryGetRidByKey would not respect the sorted flag, causing some FieldRva to not select the appropriate ClassLayout row properly (#​724, #​728).
  • Fix an issue where FieldRvaDataReader would not always select the correct metadata stream in EnC situations (#​724, #​728).

6.0.0-beta.6

This release brings the long-needed metadata resolution revamp. The previous system often caused incorrect, duplicated, or silent failed assembly resolutions, which sometimes resulted in bad metadata to be emitted in output binaries. The new system makes RuntimeContext act more like an AppDomain/AssemblyLoadContext, centralizing assembly management and requiring all metadata resolution to go through it. Resolution is now also much more explicit, by always requiring a RuntimeContext instance. This ensures more reliable, predictable behavior when creating and processing .NET metadata.

Check out the updated documentation on RuntimeContexts on how to use the new APIs.

Full change log below:

New Features

  • Breaking change: Revamp of metadata resolution system and RuntimeContexts (#​704).
    • IAssemblyResolver is drastically simplified and is no longer responsible for caching anymore.
    • IMetadataResolver and friends are removed.
    • RuntimeContext construction is drastically simplified.
    • RuntimeContext is now responsible for resolving and maintaining assembly and metadata caches.
    • Add RuntimeContext::LoadAssembly methods to load assemblies into the context (similar to AssemblyDefinition::FromX, but using the context for reader parameters, cache and automatic wiring of dependencies).
    • Remove all Resolve methods in favor of a Resolve and TryResolve method taking a RuntimeContext. Additionally, all properties and methods that may have implicitly required resolution will now take a RuntimeContext as well.
    • SignatureComparer can now take a RuntimeContext in its constructor. When none is provided, the comparer will no longer try to resolve forwarder types and compare signatures as-is.
  • Add TargetRuntimeProber to detect the target runtime of a PE image without loading it as a full ModuleDefinition (#​704).
  • Add MetadataDirectory::GetImpliedStreamSelection() (#​704).
  • Add read support for S_TRAMPOLINE and S_GTHREAD32 and S_LTHREAD32 PDB symbols (#​711, thanks @​dongle-the-gadget).

Improvements

  • Breaking Change: Rename UnmanagedPEFileBuilder to TemplatedPEFileBuilder to more accurately reflect its behavior (727c554571a848f2e09a1d7aa4365c287bd90934)
  • Add .NET 11 support (#​696, thanks @​ds5678).
  • Add support for (potentially unreleased) future target runtime versions not known yet to the current distribution of AsmResolver.DotNet (i.e., not explicitly added to KnownCorLibs) (#​702, 55c847fd7617755ef09fffdf3512d454151bc7df).
  • Optimize BinaryStreamWriter for .NET 10+ targets (#​695, thanks @​Sergio0694).
  • Let Utf8String implement ISpanFormattable and IUtf8SpanFormattable (#​699, thanks @​Sergio0694).
  • Add automatic sorting of CIL exception handlers on build (#​707, thanks @​Windows10CE).
  • Add Utf8String::CreateUnsafe factory method (#​709, thanks @​Windows10CE)
  • Add TypeAttributes::WindowsRuntime (#​710, thanks @​Sergio0694).
  • Add ModuleDefinition::CreateConstructor overload taking CorLibTypeFactory (#​712, thanks @​Sergio0694).
  • Add missing Class2, Structure2, Union2 and Interface2 PDB leaf record types (#​714, thanks @​ds5678).

Bug Fixes

  • Fix an issue where auto-importing a type reference with a module definition as its scope would not turn into the declaring assembly (#​697).
  • Fix an issue where the custom attribute signature writer would incorrectly consider the context module of a type as the target module (#​697).
  • Fix an issue where associated metadata was duplicated even if the owner row was deduplicated (#​697 ).
  • Fix an issue where offsets in TLS data directories would not roundtrip properly (#​706, #​708).
  • Fix an issue where relocation table entries would be duplicated or misaligned in some cases (#​708).

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: AsmResolver.DotNet
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .net code dependencies Pull requests that update a dependency file labels May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .net code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants