Skip to content

Commit f4deb0e

Browse files
committed
.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
1 parent 6dbbcab commit f4deb0e

File tree

4 files changed

+165
-11
lines changed

4 files changed

+165
-11
lines changed

.tools/DllExport.nuspec

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,30 @@
55
<version>$-version-$</version>
66
<title>.NET DllExport</title>
77
<authors>github.com/3F/DllExport</authors>
8-
<license type="file">License.txt</license>
8+
<license type="file">LICENSE.txt</license>
99
<owners>reg</owners>
1010
<licenseUrl>https://aka.ms/deprecateLicenseUrl</licenseUrl>
1111
<projectUrl>https://github.com/3F/DllExport</projectUrl>
1212
<repository type="git" url="https://github.com/3F/DllExport" />
1313
<requireLicenseAcceptance>false</requireLicenseAcceptance>
14-
<description>
15-
Open source project .NET DllExport with .NET Core support (aka 3F/DllExport aka DllExport.bat)
16-
https://github.com/3F/DllExport
14+
<description>Open source .NET DllExport with .NET Core support (aka 3F/DllExport aka DllExport.bat) https://github.com/3F/DllExport
1715

1816
🚀 Quick start: https://github.com/3F/DllExport/wiki/Quick-start
17+
1918
🔖 Examples. Unmanaged C++ / C# / Java: https://youtu.be/QXMj9-8XJnY
2019
🧪 Demo: https://github.com/3F/Examples/tree/master/DllExport/BasicExport
21-
22-
===
23-
gnt DllExport/$-version-$
24-
https://github.com/3F/GetNuTool
20+
21+
* https://github.com/3F/DllExport/tree/master/src/DllExport/assets
22+
https://github.com/3F/DllExport/tree/master/src/DllExport/UnitedTest
2523

2624
===
2725
DllExport -dxp-version $-version-$
2826
https://3F.github.io/DllExport/releases/latest/manager/
2927

28+
===
29+
gnt DllExport/$-version-$
30+
https://github.com/3F/GetNuTool
31+
3032
{build_info}</description>
3133
<summary>.NET DllExport with .NET Core support (aka 3F/DllExport aka DllExport.bat)</summary>
3234
<tags>DllExport unmanaged-exports ildasm ilasm coreclr exported-functions dotnetcore Conari pinvoke net-c-func native tools dotnet-DllExport unmanaged-export hMSBuild GetNuTool MvsSln</tags>

.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.7.4
1+
1.8.0

changelog.txt

Lines changed: 153 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,159 @@
22
.NET DllExport - https://github.com/3F/DllExport
33
- - - - - - - - - - - - - - - - - - - - - - - - -
44

5-
[v1.7.4] 2021.01.02
5+
[1.8] 2025.02.25
6+
7+
* NEW: Extends support for .NET 9, .NET 8, .NET 7,
8+
.NET 6, .NET 5, netcoreapp3.1, netstandard2.1, ...
9+
Issues: #219, #193, #132, #239
10+
11+
* NEW: Custom `.typref ...` & `.assembly extern ...` in the Wizard
12+
using modern 3F's IL Assembler 9.3+
13+
14+
* NEW: Support $-interpolation in modern .NET 9-6, Span, Memory, ...
15+
configure in the Wizard.
16+
17+
* NEW: New [Ref] packages control and related options.
18+
19+
* NEW: ImageBase + step control in multiple targeting.
20+
configure in the Wizard.
21+
22+
* NEW: New `DllExport -pe` keys:
23+
-list-addr, -list-ord, -list-all
24+
-magic, -num-functions, -base
25+
26+
* NEW: Official ILRepack support in Pre-processing; 2.0.39
27+
https://github.com/gluck/il-repack/releases/tag/2.0.39
28+
29+
* NEW: New PE Check option to control PE32/PE32+ arch.
30+
31+
* NEW: -action RecoverInit in addition to -action Recover;
32+
Recover to initial setup using predefined/exported data.
33+
34+
* NEW: Option to refresh intermediate module (obj) using modified. Issue #206.
35+
36+
* NEW: x86+x64 copy support for `Publish` targets. Related issue #224.
37+
`DllExportResolvePublish` property to control it.
38+
39+
* FIXED: Crashes or empty exports if code contains `.class extern forwarder` declarations.
40+
41+
* FIXED: error: syntax error at token '.' in .interfaceimpl type... Issue: #205.
42+
43+
* FIXED: Post-Proc: possible "The given key was not present in the dictionary."
44+
45+
* FIXED: Fixed Pre-Proc ILMerge for netcore.
46+
47+
* FIXED: Fix copying to own directory for "Provide x86+x64 assemblies"
48+
when no active dependencies.
49+
50+
* FIXED: Pre-Proc: fixed edit Exec raw command in the Wizard.
51+
52+
* FIXED: Fixed possible Incorrect RVA: 0 when PE Check is on.
53+
54+
* FIXED: Fixed -action Export: Parameter "unevaluatedValue" cannot be null.
55+
56+
* FIXED: Fixed Post-Proc DllExportDirX64 & DllExportDirX86 properties.
57+
58+
* FIXED: DllExportResolvePublish support for a single platform
59+
Related issue #235 or like.
60+
61+
* FIXED: Failed to write to log file ... because it is being used by another process. Issue #223.
62+
63+
* CHANGED: Execute `-action Restore` in case of loss of generated meta
64+
for the cases like ImplicitUsings=true etc.
65+
It will probably help with problems like #184.
66+
67+
* CHANGED: Improved support for nested projects using $(DllExportDir) etc.
68+
69+
* CHANGED: Improved managing `PlatformTarget` when applying the configuration.
70+
71+
* CHANGED: Improved TargetFrameworks multi-targeting support. ImageBase can be configured separately.
72+
73+
* CHANGED: Improved IsNetCoreBased logic for modern tfms.
74+
75+
* CHANGED: Improved cleaning logic at Pre-processing stage to delete correctly DllExport.Dll, Conari.dll
76+
and other assemblies from TargetDir when merging using [Ref] etc.
77+
78+
* CHANGED: `DllExport -action keys` are no longer case sensitive.
79+
80+
* CHANGED: Adds /PDB /OPTIMIZE and other types of PDB generation.
81+
Automatic option is relied on DebugType + Optimize + DebugSymbols properties:
82+
* Optimize: Optimize long instructions to short
83+
* PdbOptimize: +Create the PDB file without enabling debug info tracking
84+
* DebugOptimize: Enable JIT optimization, create PDB file, use implicit sequence points
85+
* Debug: Disable JIT optimization, create PDB file, use sequence points from PDB
86+
* DebugImpl: Disable JIT optimization, create PDB file, use implicit sequence points
87+
* Legacy True/False: Debug or Optimize
88+
89+
* CHANGED: Updated .PDB deletion logic according to ISymUnmanagedWriter problem.
90+
91+
* CHANGED: Use `wDxpMsgLevel` environment variable to control message level.
92+
93+
* CHANGED: Full integration with modern hMSBuild 2.4.1+
94+
https://github.com/3F/hMSBuild
95+
```
96+
DllExport -hMSBuild -help
97+
```
98+
99+
GetNuTool now through hMSBuild engine:
100+
```
101+
DllExport -hMSBuild -GetNuTool ...
102+
```
103+
104+
* CHANGED: `DllExport -pe-exp-list` marked as obsolete;
105+
Use new `-pe` instead.
106+
```
107+
DllExport -pe -help
108+
```
109+
110+
* CHANGED: +Log option for IlMerge & ILRepack in the Wizard.
111+
112+
* CHANGED: Changed `-action Upgrade` logic same to `-action Configure`
113+
114+
* CHANGED: Make all paths relative as `$(DllExportDir)..\` in configured project files.
115+
116+
* CHANGED: Updated wrapper in offline version
117+
`offline.DllExport.1.8...zip` https://www.nuget.org/packages/DllExport/1.8
118+
119+
* CHANGED: Added netfx4sdk 1.2 helper to build using legacy tfm
120+
https://github.com/3F/netfx4sdk
121+
122+
* CHANGED: Updated
123+
* ILAsm 9.3.0
124+
https://github.com/3F/coreclr/releases/tag/9.3.0
125+
126+
* ILMerge 3.0.41
127+
https://www.nuget.org/packages/ilmerge/3.0.41
128+
129+
* Cecil 0.11.6
130+
https://github.com/jbevain/cecil/releases/tag/0.11.6
131+
132+
* Conari 1.5.0
133+
https://github.com/3F/Conari/releases/tag/1.5
134+
135+
* MvsSln 2.7 with enabled Huid implementation
136+
https://github.com/3F/MvsSln/issues/51#issuecomment-2156752275
137+
138+
* NOTE: Tests for net9.0;net8.0;net7.0;net6.0;net5.0;netcoreapp3.1;netstandard2.1;netstandard2.0;net472;...
139+
can be found in official repo https://github.com/3F/DllExport
140+
141+
~ https://github.com/3F/DllExport/tree/master/src/DllExport/assets
142+
https://github.com/3F/DllExport/tree/master/src/DllExport/UnitedTest
143+
144+
* NOTE: To upgrade to 1.8:
145+
DllExport -mgr-up -dxp-version 1.8
146+
or
147+
DllExport -action Upgrade -dxp-version 1.8
148+
149+
* NOTE: official manager can be found here:
150+
https://3F.github.io/DllExport/releases/latest/manager/
151+
or here:
152+
* https://github.com/3F/DllExport/releases/tag/1.8
153+
* https://www.nuget.org/packages/DllExport/1.8
154+
155+
156+
157+
[1.7.4] 2021.01.02
6158

7159
* FIXED: Basic project integration stuck on adding property message. Issue #175.
8160
Modern VS/MSBuild 16.8+

src/DllExportVersion.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace net.r_eg.DllExport
66

77
internal readonly struct DllExportVersion
88
{
9-
public const string S_NUM = "1.7.4";
9+
public const string S_NUM = "1.8.0";
1010
public const string S_REV = "0";
1111
public const string S_REL = "";
1212

0 commit comments

Comments
 (0)