.NET DllExport - https://github.com/3F/DllExport
- - - - - - - - - - - - - - - - - - - - - - - - -

[v1.6.4] 2019.07.04

    * FIXED: Possible "The process cannot access the file because it is being used by another process"
             Issue #106
    
    * CHANGED: Updated Mono.Cecil 0.10.4
               https://github.com/jbevain/cecil/commits/0.10.4
               
    * CHANGED: Updated MvsSln 2.3
               Release notes:
               https://github.com/3F/MvsSln/releases/tag/v2.3
               
    * NOTE: To upgrade configured version to v1.6.4: 
            ```
                DllExport -action Upgrade -dxp-version 1.6.4
            ```    

[v1.6.3] 2019.05.30

    * NEW: Support of unicode characters in namespaces. Issue #80
    
    * NEW: Integrated `-action Configure` command by default. Issue #96
           Configure everything in one click.
           https://github.com/3F/DllExport/wiki/Quick-start
    
    * CHANGED: Updated Mono.Cecil 0.10.3
               https://github.com/jbevain/cecil/commits/0.10.3
               
    * CHANGED: Updated MvsSln 2.2
               Release notes:
               https://github.com/3F/MvsSln/releases/tag/v2.2
               
    * NOTE: To upgrade configured version to v1.6.3: 
            ```
                DllExport -action Upgrade -dxp-version 1.6.3
            ```
    
[v1.6.2] 2018.12.27

    * NEW: Added option 'auto' into panel of platforms as an automatic configuring platform from user settings.
           An easy configuring between different configurations, like from BasicExport example: 
           https://github.com/3F/Examples/tree/master/DllExport/BasicExport
      
    * FIXED: MSB3073 for paths with `%` and `;`.
    * FIXED: Inactive `-packages` key. (broken in 1.6.1)
    * FIXED: Problems with relative paths for `-pkg-link`. (incomplete logic from 1.6.0)
    * FIXED: Fixed problems with special symbols in path. Related Issue #88.
            ```
             ' &!~`@#$^(+)_=%-;[.]{,}
            ```
            
    * FIXED: Fixes possible Null Exception for empty project collection when applying filter.
    * FIXED: Build problem when project is configured from arguments ending with `"` (double quote mark).
             For example: `-action Configure -sln-dir "path"`
             
    * CHANGED: Removed obsolete Configurator (old PowerShell way) from NuGet package.
    * CHANGED: Updated hMSBuild 2.0 & GetNuTool 1.7.
               Release notes:
                * https://github.com/3F/GetNuTool/releases/tag/v1.7
                * https://github.com/3F/hMSBuild/releases/tag/v2.0
            
    * NOTE: To upgrade configured version on v1.6.2: 
            ```
                DllExport -action Upgrade -dxp-version 1.6.2
            ```
    
[v1.6.1] 2018.08.05

    * FIXED: Fixed bug when some methods cannot be exported. Issue #59.
    * FIXED: Bug 'The node is not parented by this object' when Configuring projects. Issue: #77.
    * FIXED: Fixed GDI objects leak in Wizard.
    * FIXED: `-msb` key cannot affect for GetNuTool section. Issue #74.
    * FIXED: Bug when automatic restoring still uses default keys from manager after configuring with custom `-server`.
    * FIXED: Problem with double quotes for `-packages` key. 
    * FIXED: Possible incorrect repetition of the relative path for `-packages` key. 
    * FIXED: Possible problem 'The request was aborted: Could not create SSL/TLS secure channel.'. Issue: #77.
    * FIXED: Possible problem with path when `-msb` key contains round brackets, 
             e.g.: `D:\C\Program Files (x86)\Microsoft Visual Studio\`...
             
    * NEW: Implemented features for additional automation. Issue #76.
            New actions:             
                * `-action Export` 
                * `-action Recover`
                * `-action Unset`
            
            Documentation: https://github.com/3F/DllExport/wiki/DllExport-Manager#automation
            
    * NEW: Added proxy support for manager.
            The common format: `[usr[:pwd]@]host[:port]`
            
            Documentation: https://github.com/3F/DllExport/wiki/DllExport-Manager#proxy
            
    * NEW: Wizard. Added sorting an projects in main window by its installing status and by availability.
    * NEW: Wizard. Added filter for list of projects in main wizard window.
    * NEW: New 'Offline' versions from our packages. See GitHub Releases page.
    * NEW: Added key to force update `Reference` without PublicKeyToken. Issue #65.
    * NEW: Added `-force` key for manager to use aggressive behavior, e.g. like removing pkg when updating. 
           Wiki: https://github.com/3F/DllExport/wiki/DllExport-Manager#receiving-new-package-version

    * NEW: New action `-action Upgrade`.
           Aggregates an Update action with additions for upgrading. 

                Today's an Upgrade action:
                ```
                DllExport -action Upgrade ...
                ```

                is equal to:
                ```
                DllExport -action Update -mgr-up -force ...
                ```
                
                Wiki: https://github.com/3F/DllExport/wiki/DllExport-Manager#updating

    * CHANGED: Case sensitivity for the Action names.
    * CHANGED: `-action Default` for nothing.
    * CHANGED: UI layout fixes for -Info form (Thanks @Genteure, Issue #61). 
    * CHANGED: Allows absolute path for `-packages` key.
    * CHANGED: `-sln-file` key now can affect to `-action Configure`
    * CHANGED: hMSBuild tool now is also distributed inside root directory of the packages zip & nupkg.
               Use this for EXP0014 problem: "RunIlAsm. The library manager still cannot be found."
               Example: https://www.youtube.com/watch?v=zUejJ4vUPGw

    * CHANGED: Updated GetNuTool v1.6.2
    * CHANGED: Updated MvsSln v2.1.0        
    * OTHER: Some other fixes and changes with manager and wizard.
    * NOTE: To upgrade configured version: `DllExport -action Upgrade ...`
    * NOTE: Configuring projects: `DllExport -action Configure ...`
    * NOTE: Screencasts:
                * Quick start: https://www.youtube.com/watch?v=sBWt-KdQtoc
                * Basic examples for C++ and C#: https://www.youtube.com/watch?v=9Hyg3_WE9Ks
                * Complex types and Strings: https://www.youtube.com/watch?v=QXMj9-8XJnY
                
    * NOTE: Our actual wiki - https://github.com/3F/DllExport/wiki
            * Documentation for manager: https://github.com/3F/DllExport/wiki/DllExport-Manager

[v1.6] 2017.12.29

    * NEW: The new embeddable lightweight manager for distribution via MvsSln & GetNuTool projects. Issue #38.
           Based on hMSBuild logic and includes GetNuTool core v1.6.1.
           
           Now you shouldn't use standard nuget clients anymore:
           https://www.youtube.com/watch?v=9bYgywZ9pPE
           
           Quick start: https://www.youtube.com/watch?v=sBWt-KdQtoc
            ==============================
            DllExport -action Configure
            ==============================
           
           Package from nuget.org already contains manager, but you can also get it directly.
           Latest manager: https://3F.github.io/DllExport/releases/latest/manager/
           ~18 Kb text-based embeddable batch-script that does not require powershell and dotnet-cli.
           
           Automatic restoring still is available but you can also use: `DllExport -action Restore`
           All available features: `DllExport -h`
           
           Direct links to remote package (without nuget server) via `-pkg-link {uri}` key. Issue #53.
           NuGet Server by default: nuget.org.
           
    * NEW: The new Wizard (configurator via MvsSln). To easy configure your projects in any place. Part of Issue #38.
           MvsSln v2.0: https://github.com/3F/MvsSln
           
    * NEW: Added support of empty/global namespaces - Issue #47. 
           Use `Direct-Mod` if Cecil will not process this correctly.
           
    * NEW: Implemented another storage for configuration: '.net.dllexport.targets'. Issue #49.
    
    * NEW: New settings for configurator (Wizard):
            * Path to custom ILAsm.
            * Flag to keep intermediate Files (IL Code, Resources, ...).
            * Timeout of execution in milliseconds.
    
    * NEW: Implemented automatic checking existence of a correct exported proc via Conari. Issue #55.
           Wizard controls it via `$(DllExportPeCheck)`:
            * 0x01 bit - Will check count of all planned exports from final PE32/PE32+ module.
            * 0x02 bit - Will check existence of all planned exports (IL code) in actual PE32/PE32+ module.
            
    * NEW: Implemented PE32/PE32+ Viewer to check manually available exports from final modules. Issue #55.
           New key for manager:
            ```
            -pe-exp-list {module} - To list all available exports from PE32/PE32+ module.
            ```

            Sample:
            ```
            DllExport -pe-exp-list bin\Debug\regXwild.dll
            ```
            
    * FIXED: Fixed target platform detection. Issue #34.
             Details: https://github.com/3F/DllExport/issues/34#issuecomment-306171060
             
    * FIXED: Fixed problem when the Post-Build event is triggered before our tool. Issue #35.
             Use this if still is needed:
             ```
             <Target Name="PostBuildEventBeforeDllExport" BeforeTargets="DllExportMod">
                ...
             </Target>
             ```
             
    * FIXED: Fixed generation of exp + .lib via MS Library Manager for VS2017. Issue #37.
             Now it also includes processing through VsDevCmd & VcVarsAll initializer scripts. 
             Use the folowing msbuild properties to override values by default:
             * $(DllExportVcVarsAll); $(DllExportVsDevCmd)
             
    * FIXED: Fixes possible problem with multiple properties that contains *Undefined* word, 
             e.g.: *Undefined*\path1;C:\path2 ...
             
    * CHANGED: Added information about finding lib tool. Issue #44.
    
    * CHANGED: UI. Selected platform now affects to all configurations of project instead of active as before.
    
    * CHANGED: Now nuget package does not contain library in `lib/.../` Details in #36.
    
    * CHANGED: Now we also distribute .zip package for work through our manager etc.
               https://github.com/3F/DllExport/releases
               
    * NOTE: How to avoid EXP0014: RunIlAsm. The library manager still cannot be found.
            https://www.youtube.com/watch?v=zUejJ4vUPGw
            Related Issue #44
            
    * NOTE: Quick start (Configuring, Automatic restoring, Pe-Viewer): 
            https://www.youtube.com/watch?v=sBWt-KdQtoc
            
    * NOTE: The latest text-based manager: 
            https://3F.github.io/DllExport/releases/latest/manager/
            
               Other versions you can find from GitHub Releases:
               * https://github.com/3F/DllExport/releases
               
               Or get it from nuget packages starting with v1.6+
               
    * NOTE: PE-features via Conari v1.3.0 https://github.com/3F/Conari
               
    * KNOWN: Bug when - "Build successful but methods are not exported." Issue #59
             For today, anyone else may also try to use https://github.com/3F/Conari to avoid similar @Genteure's problem.
             
    * DIFF(v1.6-RC):
    
        * FIXED: Wizard. Fixed incorrect layout for zh_CN Simplified Chinese (Thanks @Genteure). Issue #61
        * FIXED: Fixes automatic restoring the package via msbuild. Issue #62
        

[v1.6-RC] 2017.11.26

    * FIXED: Avoids crashes when project cannot be loaded for some reasons. Issue #56
    * FIXED: Fixed usage of manager outside the Solution directory.
    * FIXED: Fixed restoring package when using `-pe-exp-list` command.
    * NEW: Added `-mgr-up` key. Will update manager to version from '-dxp-version'.
    * NOTE: Thanks for your feedback. Now we're ready for release v1.6, soon. 
            Please check release-candidate as carefully as possible.
            
            Start with:
            ==============================
            DllExport -action Configure
            ==============================
            https://3F.github.io/DllExport/releases/latest/manager/
            https://www.youtube.com/watch?v=okPThdWDZMM&t=46s 
            

[v1.6-beta3] 2017.10.27

    * NEW: Implemented another storage for configuration: '.net.dllexport.targets'. Issue #49.
    * NEW: Implemented automatic checking existence of a correct exported proc via Conari. Issue #55.
           Wizard controls it via `$(DllExportPeCheck)`:
            * 0x01 bit - Will check count of all planned exports from final PE32/PE32+ module.
            * 0x02 bit - Will check existence of all planned exports (IL code) in actual PE32/PE32+ module.
            
    * NEW: Implemented PE32/PE32+ Viewer to check manually available exports from final modules. Issue #55.
           New key for manager:
            ```
            -pe-exp-list {module} - To list all available exports from PE32/PE32+ module.
            ```

            Sample:
            ```
            DllExport -pe-exp-list bin\Debug\regXwild.dll
            ```
            
    * NEW: Implemented `-pkg-link {uri}` key for DllExport manager. Issue #53.
    * NEW: New settings for Wizard:
            * Path to custom ILAsm.
            * Flag to keep intermediate Files (IL Code, Resources, ...).
            * Timeout of execution in milliseconds.
            
    * CHANGED: Updated MvsSln v2.0. Full changelog: https://github.com/3F/MvsSln/blob/master/changelog.txt
    * NOTE: PE-features via Conari v1.3.0 https://github.com/3F/Conari


[v1.6-beta2] 2017.08.19

    * NOTE: This release contains trivial fixes only for our manager because of problems with nuget.org. Issue #38.
            Please read all changes in previous beta release and please note again - you shouldn't use standard nuget clients anymore: 
            https://www.youtube.com/watch?v=okPThdWDZMM 
            
            Test and comment anything about this in Issue #38 if you need.
            
    * FIXED: Updated GetNuTool v1.6.1 to fix problems with possible incorrect CRC & Compressed size info from nuget.org.
            
             Changelog here:
             https://github.com/3F/GetNuTool/blob/master/changelog.txt
            
             Related issues:
             * https://github.com/3F/GetNuTool/issues/3
             * https://github.com/3F/DllExport/issues/38#issuecomment-322250229
             
    * CHANGED: Changed url to get latest manager directly. Please use this if you need:
               * https://3F.github.io/DllExport/releases/latest/manager/
               
               Other versions you can find from GitHub Releases:
               * https://github.com/3F/DllExport/releases
               
               Or get it from nuget packages starting with v1.6+

[v1.6-beta] 2017.08.12

    * NEW: The new lightweight manager & distribution via MvsSln & GetNuTool projects. Issue #38.
           Based on hMSBuild logic and includes GetNuTool core.
           
           Now you shouldn't use standard nuget clients anymore:
           https://www.youtube.com/watch?v=okPThdWDZMM 
           
           Package from nuget.org already contains this, but you can also get it directly.
           Latest version: https://raw.githubusercontent.com/3F/DllExport/latest/manager/DllExport.bat
           ~18 Kb text-based embeddable batch-scripts that does not require powershell and dotnet-cli.
           
           To install/uninstall or to reconfigure your projects: `DllExport -action Configure`
           To manually restore package: `DllExport -action Restore`
           All available features: `DllExport -h`
           
           Server by default - nuget.org 
           
    * NEW: The new Wizard (configurator via MvsSln). To easy configure your projects in any place. Issue #38.
           MvsSln v1.0.1.43422: https://github.com/3F/MvsSln
           
    * NEW: Added support of global namespaces - Issue #47. 
           Use `Direct-Mod` if Cecil will not process this correctly.
           
    * FIXED: Fixed target platform detection. Issue #34.
             Details: https://github.com/3F/DllExport/issues/34#issuecomment-306171060
             
    * FIXED: Fixed problem when the Post-Build event is triggered before our tool. Issue #35.
             Use this if still is needed:
             ```
             <Target Name="PostBuildEventBeforeDllExport" BeforeTargets="DllExportMod">
                ...
             </Target>
             ```
             
    * FIXED: Fixed generation of exp + .lib via MS Library Manager for VS2017. Issue #37.
             Now it also includes processing through VsDevCmd & VcVarsAll initializer scripts. 
             Use the folowing msbuild properties to override values by default:
             * $(DllExportVcVarsAll); $(DllExportVsDevCmd)
             
    * FIXED: Fixes possible problem with multiple properties that contains *Undefined* word, 
             e.g.: *Undefined*\path1;C:\path2 ...
             
    * CHANGED: Added information about finding lib tool. Issue #44.
    * CHANGED: UI. Selected platform now affects to all configurations of project instead of active as before.
    * CHANGED: Now, nuget package does not contain library in `lib/.../` Details in #36.
    * CHANGED: Now, we also distribute .zip package for work through our manager etc.
               https://github.com/3F/DllExport/releases
               
               The latest text-based manager you can find here: 
               https://raw.githubusercontent.com/3F/DllExport/latest/manager/DllExport.bat
               Illustration here: https://www.youtube.com/watch?v=okPThdWDZMM 
               

[v1.5.2] 2017.03.13
    
    * FIXED: Failing to compile in VS2017. Issue #29
             `Error The "DllExportAppDomainIsolatedTask" task failed unexpectedly. System.ArgumentException: Requested value 'Version46' was not found.`
             
    * FIXED: Possible error `Could not load file or assembly Microsoft.Build.Utilities or one of its dependencies.`
    * CHANGED: Updated script for loading of the Configurator to avoid problem with old assemblies. Issue #22
    
[v1.5.1] 2016.11.12

    * FIXED: Error : Invalid Option: /CVRES= Issue #20
    * NOTE: Our coreclr version was compiled with MSVC 14.0. Related Issue #21

[v1.5] 2016.11.04

    * FIXED: Fixed problem with white-space chars in path: `Cannot find path '<any full path with spaces>' because it does not exist ...`
    * FIXED: Fixed typo with fullseq (ddNS) - incorrect `0x30 0x30` ~0x007A7-0x007A8  /details in #14
    * FIXED: Possible problem with NullReferenceException when removing package.
    * FIXED: Fixed problem with old NS data when we try to install package for project A, then for project B
    * NEW: Implemented 'Generate .exp + .lib via MS Library Manager' #9
           GUI Configurator + MSBuild property: `DllExportGenExpLib`
           
    * NEW: Added support of unmanaged-export for Executable Modules (.exe) #18
    * NEW: Cecil variant for ddNS features /#14, #2
    * NEW: Added our custom IL Assembler as option to fix incorrect 0x13 / 0x11 opcodes. #17
           GUI Configurator + MSBuild property: `DllExportOurILAsm`
           It should help for users of Fody projects, etc.
           https://github.com/Fody/Fody/issues/271
           
           IlAsm 4.5.1 https://github.com/3F/coreclr
           based on 4.5.22220.0 / coreclr 1.0.4
           changelog of our coreclr for this release: https://github.com/3F/coreclr/blob/master/changelog.txt
           
    * CHANGED: Updated scripts of installing/removing package for more correct loading of our assemblies.

[v1.4] 2016.10.05

    * FIXED: Fixed bug - `An item with the same key has already been added`. Issue #10
    * FIXED: Bug with Meta library: Incorrect default values. Issue #16
             please note, the __cdecl is the default calling convention for our library 
             as and for C and C++ programs.

    * FIXED?: Probably fixed bug - `Script errors on package install` Issue #6
    * FIXED?: Probably fixed bug - `non-English system language - syntax error` Issue #7
    * NEW: GUI Configurator with updated ddNS features.
    * NEW: Implemented feature 'Export for platform': [ x86 / x64 / x86 + x64 ] Issue #9
    * NEW: Implemented feature 'Base for ordinals'. Issue #11
           There is also alternative to configure this number - MSBuild property: DllExportOrdinalsBase
         
    * NEW: The one (1) now is used by default as Base for all ordinals. 
           `Mimic ordinal counter (start from 1 instead of 0)` Issue #8
         
    * CHANGED: The ddNS features now as binary cmdlet `NSBin`. Use `nsbin.bat` if needed.
    * CHANGED: `Set "Inherited = false" in AttributeUsage for DllExportAttribute`. Issue #15
    * OTHER: other possible changes and fixes.

[v1.3] 2016.08.21

    * FIXED: bug 'Incorrect library' when DllExport installed for 2+ projects.
    * CHANGED: DllExport now uses `Cdecl` calling convention by default.
    * CHANGED: Mono.Cecil v0.9.6.4

[v1.2] 2016.07.13

    * CHANGED: dynamic definition of namespace for user scope. Issue #2

[v1.1] 2016.06.29

    * CHANGED: DllExport now is part of System.Runtime.InteropServices as and DllImport.
    * CHANGED: Mono.Cecil v0.9.6.1
    * NEW: 0x80070005 meaning... Issue #1
    * NEW: +DllExport(CallingConvention convention) signature

[v1.0] 2016.06.25

    * Initial the open release, based on v1.2.7.38850

