Releases: 3F/DllExport
1.8.1
.NET DllExport 1.8.1
DllExport-help | DllExport -action Upgrade -dxp-version 1.8.1 | manually: DllExport -mgr-up -dxp-version 1.8.1
📑 What's new in 1.8.1 ...
-
FIXED: Possible "The method or operation is not implemented." Issue #245.
-
FIXED: When using netfx-based assemblers, possible: "Failed to define a document writer."
-
FIXED: Fixed ILMerge support for rebasing feature. Possible:
- "Format of the executable (.exe) or library (.dll) is invalid." -
FIXED: Pre-Proc Exec: possible "Input file ... does not exist, cannot create unmanaged exports."
-
FIXED: Pre-Proc Exec: incorrectly applied $(TargetName).dll from ILMerge / ILRepack
-
NEW: Added PDB support (MSF + Portable(BSJB)) for 3F's assembler (9.4+)
Part of issue #23
details: 3F/coreclr#3 -
NEW: Additional [Ref] without strict merging (1.8.0) to support .NET Core targets
.NET 9, .NET 8, .NET 7, .NET 6, .NET 5, netcoreapp3.1, ...
For example,
Assembly? _Get(string input, string asm)
=> input.StartsWith(asm + ",") ? Assembly.LoadFrom(Path.Combine(dir, asm + ".dll")) : null;
AppDomain.CurrentDomain.AssemblyResolve += (s, a) => _Get(a.Name, "System.Memory");See assets for a full example: https://github.com/3F/DllExport/tree/master/src/DllExport/assets
-
CHANGED: Remove all x86+x64 .dlls [Ref] dependencies when activated merging.
-
CHANGED: More control around /lib for ILMerge & ILRepack:
- + Automatic DllExportPreProcSysLibs property for any related purposes;
- + UI [Lib] option in Pre-Processing when using ILMerge or ILRepack;
- + Automatic fallback for ILMerge + Lib + netstandard2.0;
-
CHANGED: Post-Proc. UI Wizard: Added "Filter by property name ..."
-
CHANGED: Manager: Removed obsolete MsgGuiLevel feature. Please use wDxpMsgLevel instead.
For example: set "wDxpMsgLevel=Trace" & DllExport ... -
CHANGED: Pre-Proc. Updated ILRepack 2.0.43
https://github.com/gluck/il-repack/releases/tag/2.0.43 -
CHANGED: Updated 3F's IL Assembler 9.4
https://github.com/3F/coreclr/releases/tag/9.4.0 -
NOTE: To upgrade from older versions:
Automatically: DllExport -action Upgrade -dxp-version 1.8.1
or
Manually: DllExport -mgr-up -dxp-version 1.8.1 -
NOTE: official manager can be found here:
https://3F.github.io/DllExport/releases/latest/manager/
* https://github.com/3F/DllExport/releases/tag/1.8.1 -
NOTE: Symbols (PDB) are available through GitHub Releases in offline edition.
1.8
.NET DllExport 1.8
DllExport-help
To upgrade from older versions: DllExport -mgr-up -dxp-version 1.8.0
or DllExport -action Upgrade -dxp-version 1.8.0
📑 What's new in 1.8 ...
-
NEW: Extends support for .NET 9, .NET 8, .NET 7,
.NET 6, .NET 5, netcoreapp3.1, netstandard2.1, ...
Issues: #219, #193, #132, #239 -
NEW: Custom
.typref ...&.assembly extern ...in the Wizard
using modern 3F's IL Assembler 9.3+
https://github.com/3F/coreclr?tab=readme-ov-file#typeref-custom-definitions -
NEW: Support $-interpolation in modern .NET 9-6, Span, Memory, ...
configure in the Wizard. -
NEW: New [Ref] packages control and related options.
-
NEW: ImageBase + step control in multiple targeting.
configure in the Wizard. -
NEW: New
DllExport -pekeys:
-list-addr, -list-ord, -list-all
-magic, -num-functions, -base -
NEW: Official ILRepack support in Pre-processing; 2.0.39
https://github.com/gluck/il-repack/releases/tag/2.0.39 -
NEW: New PE Check option to control PE32/PE32+ arch.
-
NEW: -action RecoverInit in addition to -action Recover;
Recover to initial setup using predefined/exported data. -
NEW: Option to refresh intermediate module (obj) using modified. Issue #206.
-
NEW: x86+x64 copy support for
Publishtargets. Related issue #224.
DllExportResolvePublishproperty to control it. -
FIXED: Crashes or empty exports if code contains
.class extern forwarderdeclarations. -
FIXED: error: syntax error at token '.' in .interfaceimpl type... Issue: #205.
-
FIXED: Post-Proc: possible "The given key was not present in the dictionary."
-
FIXED: Fixed Pre-Proc ILMerge for netcore.
-
FIXED: Fix copying to own directory for "Provide x86+x64 assemblies"
when no active dependencies. -
FIXED: Pre-Proc: fixed edit Exec raw command in the Wizard.
-
FIXED: Fixed possible Incorrect RVA: 0 when PE Check is on.
-
FIXED: Fixed -action Export: Parameter "unevaluatedValue" cannot be null.
-
FIXED: Fixed Post-Proc DllExportDirX64 & DllExportDirX86 properties.
-
FIXED: DllExportResolvePublish support for a single platform
Related issue #235 or like. -
FIXED: Failed to write to log file ... because it is being used by another process. Issue #223.
-
CHANGED: Execute
-action Restorein case of loss of generated meta
for the cases like ImplicitUsings=true etc.
It will probably help with problems like #184. -
CHANGED: Improved support for nested projects using $(DllExportDir) etc.
-
CHANGED: Improved managing
PlatformTargetwhen applying the configuration. -
CHANGED: Improved TargetFrameworks multi-targeting support. ImageBase can be configured separately.
-
CHANGED: Improved IsNetCoreBased logic for modern tfms.
-
CHANGED: Improved cleaning logic at Pre-processing stage to delete correctly DllExport.Dll, Conari.dll
and other assemblies from TargetDir when merging using [Ref] etc. -
CHANGED:
DllExport -action keysare no longer case sensitive. -
CHANGED: Adds /PDB /OPTIMIZE and other types of PDB generation.
Automatic option is relied on DebugType + Optimize + DebugSymbols properties:
* Optimize: Optimize long instructions to short
* PdbOptimize: +Create the PDB file without enabling debug info tracking
* DebugOptimize: Enable JIT optimization, create PDB file, use implicit sequence points
* Debug: Disable JIT optimization, create PDB file, use sequence points from PDB
* DebugImpl: Disable JIT optimization, create PDB file, use implicit sequence points
* Legacy True/False: Debug or Optimize -
CHANGED: Updated .PDB deletion logic according to ISymUnmanagedWriter problem.
-
CHANGED: Use
wDxpMsgLevelenvironment variable to control message level. -
CHANGED: Full integration with modern hMSBuild 2.4.1+
https://github.com/3F/hMSBuild
DllExport -hMSBuild -help
GetNuTool now through hMSBuild engine:
DllExport -hMSBuild -GetNuTool ... -
CHANGED:
DllExport -pe-exp-listmarked as obsolete;
Use new-peinstead.
DllExport -pe -help -
CHANGED: +Log option for IlMerge & ILRepack in the Wizard.
-
CHANGED: Changed
-action Upgradelogic same to-action Configure -
CHANGED: Make all paths relative as
$(DllExportDir)..\in configured project files. -
CHANGED: Updated wrapper in offline version
offline.DllExport.1.8...ziphttps://github.com/3F/DllExport/releases/tag/1.8 -
CHANGED: Added netfx4sdk 1.2 helper to build using legacy tfm
https://github.com/3F/netfx4sdk -
CHANGED: Updated
-
ILAsm 9.3.0
https://github.com/3F/coreclr/releases/tag/9.3.0 -
ILMerge 3.0.41
https://www.nuget.org/packages/ilmerge/3.0.41 -
Cecil 0.11.6
https://github.com/jbevain/cecil/releases/tag/0.11.6 -
Conari 1.5.0
https://github.com/3F/Conari/releases/tag/1.5 -
MvsSln 2.7 with enabled Huid implementation
3F/MvsSln#51 (comment)
-
-
NOTE: Tests for net9.0;net8.0;net7.0;net6.0;net5.0;netcoreapp3.1;netstandard2.1;netstandard2.0;net472;...
can be found in official repo https://github.com/3F/DllExport
~
https://github.com/3F/DllExport/tree/master/src/DllExport/assets
https://github.com/3F/DllExport/tree/master/src/DllExport/UnitedTest -
NOTE: official manager can be found here:
https://3F.github.io/DllExport/releases/latest/manager/
or here:
* https://github.com/3F/DllExport/releases/tag/1.8
* https://www.nuget.org/packages/DllExport/1.8 -
NOTE: Symbols (PDB) are available through GitHub Releases in offline version.
v1.7.4
Public release. .NET DllExport 1.7.4
* FIXED: Basic project integration stuck on adding property message. Issue #175.
Modern VS/MSBuild 16.8+
* FIXED: Fixed integration with Conari and merging modules via ILMerge. Issue #170.
* FIXED: double.NaN leads to errors for non exported methods. Issue #174.
```
syntax error at token '-' in: IL_0029: ldc.r8 -nan(ind)
```
* NEW: Manager. Implemented `-no-mgr` key:
- Do not use manager for automatic restore the remote package.
* CHANGED: FIPS compliant algorithms.
Unable to install when FIPS enabled. Issue #171.
* CHANGED: Improved the searching paths logic for RootPath and PkgPath,
to be more loyal when no keys for some reason. Part of #175.
* CHANGED: Updated MvsSln 2.5.3
https://github.com/3F/MvsSln/releases/tag/2.5.3
* CHANGED: Use special edition for DllExport project. Part of issue #171.
https://github.com/3F/MvsSln
branch: edition/DllExport
v1.7.3
Public release. .NET DllExport 1.7.3
* FIXED: Fixed syntax error at token '-' in: IL_002d: ldc.r8 -nan(ind) with "return Double.NaN"
Through "Single + Double NaN token patching" option. Issue #158.
```
.field = float32(-nan(ind)) -> 0xFFC00000
.field = float64(-nan(ind)) -> 0xFFF8000000000000
ldc.r8 -nan(ind) -> 00 00 00 00 00 00 F8 FF
ldc.r4 -nan(ind) -> 00 00 C0 FF
```
* FIXED: NuGet packages are not visible as installed when DLLExport enabled for project.
Issue #152.
* FIXED: Concurrency Issue with Parallel Project Builds. Issue #73.
* FIXED: Fixed the first phase of the build when restoring. Related issue #159.
* FIXED: Fixed VS NuGet PM possible error:
"You cannot call a method on a null-valued expression."
* CHANGED: Improves package integration. PR #161.
- Updated logic for packages through `-pkg-link` key.
- Removed `-force` key from the project files
if it was pushed together with other commands for manager.
v1.7.1
Public Release; .NET DllExport 1.7.1
* NEW: Pre-Processing feature. PR #146.
Related issue #40
Official ILMerge support;
https://github.com/dotnet/ILMerge
Quick integration with Conari for most easy access to unmanaged features;
https://github.com/3F/Conari
+Other related tools and assembly manipulations.
Manual configuring: https://github.com/3F/DllExport/issues/40#issuecomment-593147220
* NEW: Post-Processing. PR #148.
Continues direction of Pre-Processing feature. PR #146
Related issue #144
Explanation and details:
https://ko-fi.com/Blog/Post/ILMerge---Conari---Debug-information---DllExport-=-O5O61MV8A
1.7.1 Provides only basic GUI support for predefined options. Thus,
*! Some Post-Proc features are not yet available in GUI.
But you can already configure it with msbuild:
```
<Target Name="DllExportPostProc">
<!-- After activation, you can access the following properties and items:
$(DllExport) - version
$(DllExportSln) - full path to .sln which controls current project
$(DllExportPrj) - full path to current project where processed .NET DllExport
@(DllExportDirX64) - $(TargetDir)x64\*.*
@(DllExportDirX86) - $(TargetDir)x86\*.*
@(DllExportDirBefore) - $(TargetDir)Before\*.*
@(DllExportDirAfter) - $(TargetDir)After\*.*
@(DllExportDependents + populated property name)
- each populated properties from DllExportProcEnv,
e.g. DllExportDependentsTargetDir
@(DllExportDependencies + populated property name)
- each populated properties from DllExportProcEnv,
e.g. DllExportDependenciesTargetDir
@(DllExportSeqDependents + populated property name)
- each populated properties from DllExportProcEnv,
e.g. DllExportSeqDependentsTargetDir
-->
</Target>
```
https://github.com/3F/DllExport/pull/148#issuecomment-622115091
* NEW: Optional copying of intermediate files + x86+x64 directories into output
for projects that dependent on projects where used DllExport. Issue #144.
Including sequential referencing through other projects:
https://github.com/3F/DllExport/pull/148#issuecomment-625193408
* FIXED: Fixed #140 ... failed to create safe SSL/TLS context.
* FIXED: Pack of fixes for .net.dllexport.targets. PR #147.
* Fixed "Cannot modify an evaluated object originating in an imported file".
* Fixed possible duplication in .net.dllexport.targets when configuring.
* Adds removing TargetsFile if not used.
* Fixed possible loss of settings in .targets when configuring.
* FIXED: Fixed #143 'Microsoft.NET.Sdk' specified could not be found.
* FIXED: A multiple empty `<PropertyGroup />` in project files during new configuration.
* CHANGED: Wizard. Dropped support for ssl3 + tls1.0 + tls1.1
* CHANGED: Wizard. Simplified notification for stable versions.
* CHANGED: Manager. Access to hMSBuild tool (packed) via `-hMSBuild` key.
https://github.com/3F/hMSBuild
Since it uses packed version (while GetNuTool is integrated inside),
you need use -dxp-version to control specific version.
* CHANGED: Updated Cecil 0.11.2
https://github.com/jbevain/cecil/releases/tag/0.11.2
* CHANGED: Updated MvsSln 2.5.2
https://github.com/3F/MvsSln/releases/tag/2.5.2
v1.7
Public Release; .NET DllExport 1.7
* NEW: .NET Core based projects support.
Issues: #90, #67
PR: #123
* NEW: .NET Standard 1.1 and above targeting support.
* NEW: Implemented "Single + Double Inf/-Inf token patching" option.
Related Issue #128.
* NEW: Implemented "Rebase System Object" option for our assembler.
Helps to avoid possible "Invalid memory access" (JNA/Java). Issue #125.
For C/C++ such as "Unhandled exception at ... (KernelBase)"
https://twitter.com/GitHub3F/status/1201904821093187585
Part of PR #123
* NEW: Implemented updater for wizard. Issue #109.
* NEW: Textual export of affected data to diag.
* CHANGED: Updated CoreCLR 3.1.0 LTS \ IL Assembler 4.700.2.
https://github.com/3F/coreclr/releases/tag/ILAsm.4.700.2
Includes an implemented `/REBASE` feature for related issue #125.
* CHANGED: New installation behavior through official NuGet.
init.ps1 also adds optional copying of package data for our manager.
Please note: This is not nuget support!
It just replaces known info-form that was in 1.6.x.
* CHANGED: New wizard layout for 1.7.
* CHANGED: Local scope when invoking .\DllExport manager in project files.
* CHANGED: Updated logic for an offline versions
with optional converting to online if needed.
* CHANGED: Updated MvsSln 2.5.1
https://github.com/3F/MvsSln/releases/tag/2.5.1
* CHANGED: Updated hMSBuild 2.3
https://github.com/3F/hMSBuild/releases/tag/v2.3
* KNOWN: You can finally get another System.Object in modified assembly:
https://github.com/3F/DllExport/issues/90#issuecomment-546637702
* NOTE: You need an updated/modern manager to avoid problem
when "Possible incorrect Sdk-based project types": PR #123
https://github.com/3F/MvsSln/issues/23
Use it from official 1.7 release:
https://github.com/3F/DllExport/releases/tag/v1.7
https://www.nuget.org/packages/DllExport/1.7.0
Otherwise you need provide manually msbuild instance
that can process modern Sdk-types due to modern VS/dotnet sdk
dependencies for netcore-based projects.
For example, through hMSBuild https://github.com/3F/hMSBuild
```
DllExport ... -msb hMSBuild
```
* NOTE: For command-line mode, To upgrade configured version to 1.7:
```
DllExport -action Upgrade -dxp-version 1.7.0
```
v1.7-RC
Release Candidate of the .NET DllExport 1.7:
* NOTE: Release Candidate includes all actual fixes from
[ 1.7 beta-1 to beta-4 ] releases. And also adds the following:
* NEW: Implemented updater for wizard. Issue #109.
* NEW: Textual export of affected data to diag.
* CHANGED: Updated logic for an offline versions
with optional converting to online if needed.
* CHANGED: `.gitattributes` now will be distributed with packages.
Use this to avoid related problems:
`a7, a8, a9 - is not recognized as an internal or external command`
https://github.com/3F/hMSBuild/issues/2
v1.7-beta4
Public Beta4 release of the .NET DllExport 1.7:
* NEW: Allowed .NET Standard 1.1 and above targeting.
* FIXED: Fixed "Sdk.WindowsDesktop" problem for .NET Core / SDK-based projects.
Details in PR #123.
* FIXED: Fixed beta3 incorrect layout (Thanks @Genteure, PR #131).
Related problem with `Inf/-Inf token patching` option:
https://github.com/3F/DllExport/issues/128#issuecomment-566360606
* FIXED: DllExport crashing with proxy authentication error. Issue #133.
* FIXED: Fixed actions for `-mgr-up` key.
Including `-action Upgrade` ( Update + mgr-up + force keys )
* FIXED: Fixes possible MSB1006 for proxycfg property.
"MSB1006: Property is not valid. Switch: proxycfg"
* CHANGED: UI. VS project icons under Visual Studio 2017 Image Library EULA.RTF license.
* CHANGED: init.ps1 adds optional copying of package data for our manager.
Part of the "new installation behavior through official NuGet." (beta2)
Please note: This is not nuget support!
It just replaces known info-form that was in 1.6.x.
* CHANGED: Local scope when invoking .\DllExport manager in project files.
* CHANGED: Updated GetNuTool 1.8
https://github.com/3F/GetNuTool/releases/tag/1.8
* NOTE: Please don't use beta releases in production!
* NOTE: Please report about something here: https://github.com/3F/DllExport/issues
v1.6.6
Public release .NET DllExport 1.6.6
* NOTE: Please don't forget to test latest 1.7 BETA releases (not for production)
with .NET Core support!
https://github.com/3F/DllExport
* FIXED: Fixed possible duplication of `PlatformTarget` during setup.
* FIXED: Fixed error when switching between .sln in UI. Wizard.
* FIXED: DllExport crashing with proxy authentication error. Issue #133.
* FIXED: Fixed actions for `-mgr-up` key.
Including `-action Upgrade` ( Update + mgr-up + force keys )
* FIXED: Fixes possible MSB1006 for proxycfg property.
"MSB1006: Property is not valid. Switch: proxycfg"
* CHANGED: Updated MvsSln 2.5
https://github.com/3F/MvsSln/releases/tag/2.5
* CHANGED: Updated Mono Cecil 0.11.1
https://github.com/jbevain/cecil/releases/tag/0.11.1
* CHANGED: Updated GetNuTool 1.8
https://github.com/3F/GetNuTool/releases/tag/1.8
* CHANGED: Updated Conari 1.4
https://github.com/3F/Conari/releases/tag/1.4
v1.7-beta3
Public Beta3 release of the .NET DllExport 1.7:
* FIXED: Mismatch of the name of the exported function with the specified value.
Issue #129.
* FIXED: Unchangeable cdecl convention. Part of Issue #129.
* FIXED: Fixed possible duplication of `DllExportSysObjRebase` during setup.
* NEW: Implemented "Single + Double Inf/-Inf token patching" option.
Related Issue #128.
* KNOWN: You can finally get another System.Object in modified assembly:
https://github.com/3F/DllExport/issues/90#issuecomment-546637702
* NOTE: Please don't use beta releases in production!
* NOTE: Please report about something here: https://github.com/3F/DllExport/issues