Releases: 3F/DllExport
1.8
.NET DllExport 1.8
DllExport
-help
To upgrade from older versions up to 1.8: DllExport -mgr-up -dxp-version 1.8
or DllExport -action Upgrade -dxp-version 1.8
📑 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 -pe
keys:
-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
Publish
targets. Related issue #224.
DllExportResolvePublish
property to control it. -
FIXED: Crashes or empty exports if code contains
.class extern forwarder
declarations. -
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 Restore
in 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
PlatformTarget
when 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 keys
are 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
wDxpMsgLevel
environment 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-list
marked as obsolete;
Use new-pe
instead.
DllExport -pe -help
-
CHANGED: +Log option for IlMerge & ILRepack in the Wizard.
-
CHANGED: Changed
-action Upgrade
logic 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...zip
https://www.nuget.org/packages/DllExport/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
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
v1.7-beta2
Public Beta2 release of the .NET DllExport 1.7: * FIXED: Fixed possible "Invalid memory access" (JNA/Java). Issue #125. For C/C++ such as "Unhandled exception at ... (KernelBase)" https://twitter.com/GitHub3F/status/1201904821093187585 * FIXED: Fixed 'Failed to resolve assembly...' when .NET Standard. Issue #127. * FIXED: Fixed error when switching between .sln in UI. Wizard. * FIXED: Fixed possible duplication of `PlatformTarget` during setup. * NEW: Implemented "Rebase System Object" option for our assembler. * CHANGED: New installation behavior through official NuGet. * CHANGED: New wizard layout for 1.7. * CHANGED: Updated CoreCLR 3.1.0 RTM \ 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: Updated Mono Cecil 0.11.1 https://github.com/jbevain/cecil/releases/tag/0.11.1 * CHANGED: Updated Conari 1.4 https://github.com/3F/Conari/releases/tag/1.4 * KNOWN: Possible syntax error at token 'inf'. Issue #128. https://github.com/3F/DllExport/issues/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