A set of compile-time libraries (nothing to deploy) and a build task that enable you to export functions from managed code to native applications.
That means, you can create plugins in a managed language like C# or F# for native applications that only have a C-Api (like Notepad++).
The nuget package is all you need. Just mark your methods with [DllExport] and build for x86, x64 or ia64.
- You have to set your platform target to either x86, ia64 or x64. AnyCPU assemblies cannot export functions.
- The export name defaults to the method name and the calling convention to stdcall. If that's all what you want, you can just use [DllExport] without parameters.
- You cannot put your exports in generic types or export generic methods. (The CLR wouldn't know what type parameters to use)
Install-Package UnmanagedExports -Version 1.2.7
dotnet add package UnmanagedExports --version 1.2.7
<PackageReference Include="UnmanagedExports" Version="1.2.7" />
paket add UnmanagedExports --version 1.2.7
- will use the most recent version of Microsoft.Build.Utilities.ToolLocationHelper to have a greater chance of finding the exact ildasm/ilasm for the project's target framework version
- no longer fails the build when it can't find lib.exe
- proper overridable MSBuild properties (see tools/RGiesecke.DllExport.targets)
This package has no dependencies.