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.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on UnmanagedExports:
Metatrader MQL library for C#
Wyam is a simple to use, highly modular, and extremely configurable static content generator. This library provides support for generating text.
GitHub repositories (7)
Showing the top 5 popular GitHub repositories that depend on UnmanagedExports:
Windows Driver and XInput Wrapper for Sony DualShock 3/4 Controllers
Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.
Run PowerShell with rundll32. Bypass software restrictions.
Microsoft.Diagnostics.Runtime is a set of APIs for introspecting processes and dumps.