Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: 3F/DllExport

Tags

1.8.1

Toggle 1.8.1's commit message

Verified

This commit was signed with the committer’s verified signature.
3F Denis Kuzmin
.NET DllExport 1.8.1. Public release

* 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

Toggle 1.8's commit message

Verified

This commit was signed with the committer’s verified signature.
3F Denis Kuzmin
.NET DllExport 1.8. Public release.

* 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+

* 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: To upgrade to 1.8:
        DllExport -mgr-up -dxp-version 1.8
        or
        DllExport -action Upgrade -dxp-version 1.8

* 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

Toggle v1.7.4's commit message

Verified

This commit was signed with the committer’s verified signature.
3F Denis Kuzmin
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

Toggle v1.7.3's commit message

Verified

This commit was signed with the committer’s verified signature.
3F Denis Kuzmin
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

Toggle v1.7.1's commit message

Verified

This commit was signed with the committer’s verified signature.
3F Denis Kuzmin
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: #40 (comment)

* 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>
        ```
        #148 (comment)

* 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:
           #148 (comment)

* 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

Toggle v1.7's commit message

Verified

This commit was signed with the committer’s verified signature.
3F Denis Kuzmin
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:
         #90 (comment)

* NOTE: You need an updated/modern manager to avoid problem
        when "Possible incorrect Sdk-based project types": PR #123
        3F/MvsSln#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

Toggle v1.7-RC's commit message

Verified

This commit was signed with the committer’s verified signature.
3F Denis Kuzmin
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`
           3F/hMSBuild#2

v1.7-beta4

Toggle v1.7-beta4's commit message

Verified

This commit was signed with the committer’s verified signature.
3F Denis Kuzmin
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:
         #128 (comment)

* 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

Toggle v1.6.6's commit message

Verified

This commit was signed with the committer’s verified signature.
3F Denis Kuzmin
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

Toggle v1.7-beta3's commit message

Verified

This commit was signed with the committer’s verified signature.
3F Denis Kuzmin
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:
         #90 (comment)

* NOTE: Please don't use beta releases in production!

* NOTE: Please report about something here: https://github.com/3F/DllExport/issues