Skip to content

Releases: 3F/DllExport

1.8

25 Feb 17:51
@3F 3F
f4deb0e
Compare
Choose a tag to compare

.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

  • 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

02 Jan 18:19
@3F 3F
c1cc52f
Compare
Choose a tag to compare
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

12 Jun 19:18
@3F 3F
9a4bc51
Compare
Choose a tag to compare
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

07 May 18:06
@3F 3F
61defd6
Compare
Choose a tag to compare
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

31 Jan 16:47
@3F 3F
0a002a7
Compare
Choose a tag to compare
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

27 Jan 17:54
@3F 3F
182b8f1
Compare
Choose a tag to compare
v1.7-RC Pre-release
Pre-release
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

21 Jan 19:02
@3F 3F
b044872
Compare
Choose a tag to compare
v1.7-beta4 Pre-release
Pre-release
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

16 Jan 21:24
@3F 3F
097fcbd
Compare
Choose a tag to compare
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

15 Dec 16:53
@3F 3F
46e440d
Compare
Choose a tag to compare
v1.7-beta3 Pre-release
Pre-release
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

13 Dec 22:16
@3F 3F
891d8e0
Compare
Choose a tag to compare
v1.7-beta2 Pre-release
Pre-release
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