diff --git a/.release.version b/.release.version index dd98138..0519ecb 100644 --- a/.release.version +++ b/.release.version @@ -1 +1 @@ -RC \ No newline at end of file + \ No newline at end of file diff --git a/Configurator/ConfVersion.cs b/Configurator/ConfVersion.cs index eea344e..0302cbe 100644 --- a/Configurator/ConfVersion.cs +++ b/Configurator/ConfVersion.cs @@ -10,7 +10,7 @@ internal struct ConfVersion public const string S_NUM = "1.6.0"; public const string S_REV = "9361"; - public const string S_REL = "RC"; + public const string S_REL = ""; public const string S_NUM_REV = S_NUM + "." + S_REV; diff --git a/Readme.md b/Readme.md index 8f885d2..31ec621 100644 --- a/Readme.md +++ b/Readme.md @@ -21,6 +21,7 @@ Copyright (c) 2016-2017 Denis Kuzmin :: github.com/3F [`DllExport`](https://3f.github.io/DllExport/releases/latest/manager/)` -action Configure` [[?](#how-to-get-dllexport)] +> *[How to (Screencast)](https://www.youtube.com/watch?v=sBWt-KdQtoc)* ~~~---~~~ @@ -37,7 +38,7 @@ public static int entrypoint(IntPtr L) } ``` -* **For work with Unmanaged code/libraries (binding between .NET and C/C++ etc.), see [Conari](https://github.com/3F/Conari)** +* **For work with Unmanaged code/libraries (binding between .NET and unmanaged native C/C++ etc.), see [Conari](https://github.com/3F/Conari)** * If you need convenient work with Lua (5.1, 5.2, 5.3, ...), see [LunaRoad](https://github.com/3F/LunaRoad) ```csharp @@ -51,13 +52,11 @@ public static int entrypoint(IntPtr L) Support of Modules: Library (**.dll**) and Executable (**.exe**) [[?](https://github.com/3F/DllExport/issues/18)] -Where to look ? v1.2+ provides dynamic definitions of namespaces (ddNS feature), thus you can use what you want - details **[here](https://github.com/3F/DllExport/issues/2)** +Where to look ? v1.2+ provides dynamic definitions of namespaces (ddNS feature), thus you can use what you need - details **[here](https://github.com/3F/DllExport/issues/2)** ```cpp Via Cecil or direct modification: - Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F - 000005B0 00 C4 7B 01 00 00 00 2F 00 12 05 .Ä{..../... 000005C0 00 00 02 00 00 00 00 00 00 00 00 00 00 00 26 00 ..............&. 000005D0 20 02 00 00 00 00 00 00 00 49 2E 77 61 6E 74 2E ........I.want. <<<- @@ -71,7 +70,7 @@ Our Wizard and embeddable manager [[?](https://github.com/3F/DllExport/issues/38 [![DllExport.bat](https://raw.githubusercontent.com/3F/DllExport/master/Resources/img/DllExport_manager.png)](https://3f.github.io/DllExport/releases/latest/manager/) -[![youtube.com/watch?v=okPThdWDZMM](https://raw.githubusercontent.com/3F/DllExport/master/Resources/img/DllExport_Wizard_overview_youtube.jpg)](https://youtu.be/okPThdWDZMM?t=46s) +[![youtube.com/watch?v=sBWt-KdQtoc](https://raw.githubusercontent.com/3F/DllExport/master/Resources/img/DllExport_Wizard_overview_youtube.jpg)](https://www.youtube.com/watch?v=sBWt-KdQtoc) [![PeViewer](https://raw.githubusercontent.com/3F/DllExport/master/Resources/img/DllExport_PeViewer.png)](https://github.com/3F/DllExport/issues/55) ---- @@ -100,6 +99,7 @@ Read about format PE32/PE32+, start with grammar from asmparse and move to write ```cpp ... +//yacc if(PASM->m_pCurMethod->m_dwExportOrdinal == 0xFFFFFFFF) { PASM->m_pCurMethod->m_dwExportOrdinal = $3; @@ -133,7 +133,7 @@ Read also my explanations from here: [about mscoree](https://github.com/3F/DllEx **v1.6+** have no official support of any standard NuGet clients. [[?](https://github.com/3F/DllExport/issues/38)] -* [New Wizard and embeddable manager](https://youtu.be/okPThdWDZMM?t=55s) +* [New Wizard and embeddable manager](https://www.youtube.com/watch?v=sBWt-KdQtoc) Use [DllExport.bat](https://3F.github.io/DllExport/releases/latest/manager/) (~18 Kb without powershell scripts and dotnet-cli) from any place. For example, you can still get it from packages via NuGet server ([how to](https://youtu.be/okPThdWDZMM?t=1m1s)) or it also can be embedded inside any other your scripts because of simple batch script. @@ -152,7 +152,7 @@ DllExport -action Configure DllExport -action Update ``` -* To manually restore package (**It should be automatically** restored by any Build operation of your configured projects or when you open Visual Studio. But if you need, use this): +* To manually restore package (**It should be automatically** restored by any Build operation for your configured projects. But if you need, use this): ``` DllExport -action Restore ``` @@ -174,7 +174,7 @@ Other variants: ### How to Build -Use build.bat if you need final binaries, or NuGet package as `DllExport..nupkg` and other. +Use build.bat if you need final binaries (NuGet package as `DllExport..nupkg`, Manager, zip-archive, and others). ```bash > build @@ -182,7 +182,7 @@ Use build.bat if you need final binaries, or NuGet package as `DllExport. - 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 - QClKUApSlAKUpQCoHqPrpSgP/9k= + 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 + /wBorqNB/9k= \ No newline at end of file diff --git a/Wizard/WizardVersion.cs b/Wizard/WizardVersion.cs index b28a7a8..572657f 100644 --- a/Wizard/WizardVersion.cs +++ b/Wizard/WizardVersion.cs @@ -10,7 +10,7 @@ internal struct WizardVersion public const string S_NUM = "1.6.0"; public const string S_REV = "9361"; - public const string S_REL = "RC"; + public const string S_REL = ""; public const string S_NUM_REV = S_NUM + "." + S_REV; diff --git a/changelog.txt b/changelog.txt index c1c8029..3e4f07f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,112 @@ DllExport - https://github.com/3F/DllExport - - - - - - - - - - - - - - - - - - - - - - +[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: + ``` + + ... + + ``` + + * 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