Repository navigation
This version main highlights are read/write support for PE loader configuration data directories and more support for legacy workflows for Silverlight processing. Additionally, lookup of .NET metadata should also see a good increase in performance when building / processing larger .NET binaries. Finally, as usual, this release comes with a variety of bug fixes across the board.
New Features
- Add PE load configuration data directory parsing and writing support (#787)
- Add legacy Silverlight 4 and 5 assembly resolution mechanisms (#777, #779, thanks @SychicBoy)
Improvements
- Base relocations are now deduplicated by default when reassembling PEs (#787)
- Add missing PortablePDB debug data types (#781, thanks @Sergio0694)
- Significantly improve type lookup performance by namespace+name (#794, thanks @Sergio0694)
- Mark
TypeSignature::Nameas non-nullable (#771, thanks @ds5678) - Add more diagnostic data sources when copying metadata from existing tables streams (3f240b4)
DotNetCorePathProvidernow prefersDOTNET_ROOTinstallations of the runtime/SDK to better reflect the behavior of the loader (#797, thanks @Windows10CE).- AsmResolver no longer propagates
IsExternalInitas a dependency (#785, thanks @Windows10CE) - Add
TryReadXmethods toBinaryStreamReader(775a3a8)
Bug Fixes
- Fix an issue where the ordinal-name-table of export data directories would not be sorted as expected by the Windows PE Loader (#795)
- Fix
DebugDataType::FPOto the correct value (#781, thanks @Sergio0694) - Fix an issue where RSDS debug data segments with non-ASCII characters were not measured correctly, silently overriding bytes that were put after it and thus corrupting the final output PE (#772, #780)
- Fix an issue where adding string literals to
#USstreams larger than 24-bit boundary would silently consume the literal and return invalid metadata tokens (#775, #776, thanks @Guflly) - Fix an issue where using
TypeSignature::GetDirectBaseClasswould throw aNullReferenceExceptionif the type was not added to a context module (#770, #778) - Fix an issue where fields with enum FieldRVA data would not be read properly (#788, thanks @SychicBoy)
- Fix an issue where invalid or unsupported corlib references are ignored when detecting the target runtime of a .NET module (#790, #791, thanks @SychicBoy)
- Fix an issue where input file paths were not resolved to full paths before being adding to caches and exposed through
PEFile::FullPathand friends (d9f587b) - Fix an issue in stack balance calculation for void-returning methods marked as runtime-async (4f10c8b)