- PR #366 - assembly strong name Linux compatibility
- PR #364 - add dotnet-ilrepack .NET tool
- Improve error handling when dotnet.exe not found
- Fix #347 - Error merging VB app
- Fix #359 - fix TypeForwardedTo
- Fix #362 - Fix TypeReferences in MethodDebugInformation
- Fix #361 - fix ArgumentOutOfRange in RepackAssemblyResolver.cs:line 203 (in InitializeDotnetRuntimeDirectories())
- Fix #345 - support multiple semicolon-separated attributes in /repackdrop
- Fix #319 - support some obfuscated binaries (such as Oracle)
- Fix #357 - fix regression when parsing command line arguments with --
- Fix #358 - made Cecil types internal in the repacked ILRepack.exe/dll, reduced public API
- Fix #355 - properly rewrite parameter types for calli instructions, fixes invalid tokens and runtime exceptions
- ability to internalize specific assemblies via one or more
/internalizeassembly:System.Foo
./internalize
is not required when these are specified. - Log reasons why a type was made public
- print caller stack causality in PublicTypesFixStep when a type is left public
- log resolved assemblies and location in verbose mode
- add NuGet package icon
- cleaner error when input is not a managed assembly
- include missing arg in README.md
- fix CommandLine.HasOption() when one arg is a prefix of another
- better error tolerance when reading bad dll or pdb
- add
developmentDependency
in ILRepack.nuspec
- add
/excludeinternalizeserializable
option to avoid internalizing types marked as serializable
- minor updates to command-line help
- ILRepack is now deterministic - running it on the same inputs will produce byte-for-byte identical output
- SourceLink entries are now merged and preserved
- feature: added step for merging ILLink.*.xml files
- Xaml source not from primary or reference assembly
- More resilience for invalid inputs
- Documented more command line arguments
- Fixes for using ILRepack as an API
- Support .dll extension in internalize exclude file entries
- Don't internalize or rename some well-known types, such as attributes generated by the C# compiler
- Misc bug fixes
- Support for legacy, portable and embedded PDBs
- Debug info support, sequence points, scopes, locals, custom debug info
- Unix support now working, either via
dotnet ILRepack.exe
ormono ILRepack.exe
- Updated to the latest Mono.Cecil
- Removed
Mono.Posix
dependency, shelling out tostat
andchmod
to set permissions - shipping ILRepack.runtimeconfig.json in the NuGet package so that dotnet ILRepack.exe works
- repacking .NET Core WinForms resources now works (fixed #277)
- resolving assemblies from .NET Core runtime
- writing to a temp directory first, allows repacking the primary assembly in-place
- deleted gradle from the build system, using plain MSBuild now
- less output without /verbose argument
- Option
/skipconfig
can be now used to skip merging the assemblies config files - Recognize
RepackExcludeInternalizeAttribute
to exclude a type from internalizing (#307) - Update the NuGet package information with structured license information
- Don't strong name sign for delay signing (#330)
- Fix issue when repacking multiple results of
/renameInternalized
-previously repacked
- Usage of netstandard2 support layer for .NET 4.6.1-4.7.1
- WPF merging now handles properly libraries built with the new .NET project formats
- /repackdrop:AttributeClass is now a supported argument to allow dropping specific members during merging (#215)
- /renameInternalized is now a supported argument forcing ILRepack to rename all types from other assemblies during repack (#233)
- Usage of delay sign & public key (#222)
- WPF merging now works with resources (e.g., images) in used libraries
- WPF Merging handles correctly cases when BAML types are referencing core .NET types
- Migrated to Cecil 0.10
- WPF merging handles correctly cases when there in no XAML in the merged project
- Less aggressive attribute cleanup for the main assembly (unchanged for merged ones) (#174)
- Allow proper use of ExcludeFile in Library mode (#185)
- Handle System.Runtime merging (#188)
- PdbStr doesn't work on Unix, skip it on these OS (#176)
- Support /keycontainer flag (#183)
- More verbose output header for debugging (#187)
- Expose an $(ILRepack) property for nuget consumers (#192)
- SRCSRV data from PDBs are merged for sources available with HTTP. Others are not merged and only the one from the primary assembly is kept.
- Signed WPF applications during the repack process now work properly
- Generic-based resource keys can now be used in WPF applications
- UWP applications are now properly merged
- Add set Log level verbose in IlRepack constructor
- Indirect xaml dependency merge now copes with conflicting versions
- Bumped cecil version
- Fixed regression since 2.0.4 that prevented proper merging of resources in dependent assemblies.
- Because of this, no BAML resources were added from dependencies into the merged result.
- Put public the method retrieving repacked assembly names.
- Bcl+BclAsync now repacks correctly
- Due to caching, some TypeRefs where incorrectly flagged class instead of valuetype
- Some original AssemblyReferences were kept in the merged assembly as ExportedType scope or TypeRef scope, this caused issue unless (by luck) the repacked token was the same as original one
- Added ILRepack version in repack log
- When used with copyattrs flag, primary (first) assembly attributes are prefered (when the custom attribute doesn't allow multiple)
- Types fixed during the 'Fixing references' phase are printed in verbose mode.
- InternalsVisibleTo attributes gets cleaned up to allow signed repacked assemblies to be loaded fine.
- WPF Support
- Classes (e.g.: converters) from libraries can now be used inside XAML files.
- User Controls from libraries can now be used inside XAML files.
- XAML Resource paths in
InitializeComponent()
methods are patched to reference the main assembly instead. - Support for styles, theming (
themes/generic.xml
) and inclusion of XAML files (via pack or non-pack URIs).
- API has been cleaned up (with potential breaking changes, depending on the usage).