C# 使用JNA加载依赖的.NET程序集

C# 使用JNA加载依赖的.NET程序集,c#,.net,dll,dependencies,jna,C#,.net,Dll,Dependencies,Jna,我有一个.NET C dll,它正在导出函数,Java应用程序正在通过它使用这些函数 这个C dll(我们称之为A.dll)有另一个托管依赖项F3BC4DNI.dll 因此,依赖链类似于:Java类 正如我所怀疑的,当手动告诉.NET依赖项在哪里时,问题已经用答案解决了 Exception in thread "main" java.lang.Error: Invalid memory access at com.sun.jna.Native.invokePointer(Native M

我有一个.NET C dll,它正在导出函数,Java应用程序正在通过它使用这些函数

这个C dll(我们称之为A.dll)有另一个托管依赖项F3BC4DNI.dll

因此,依赖链类似于:Java类 正如我所怀疑的,当手动告诉.NET依赖项在哪里时,问题已经用答案解决了

Exception in thread "main" java.lang.Error: Invalid memory access
    at com.sun.jna.Native.invokePointer(Native Method)
    at com.sun.jna.Function.invokePointer(Function.java:470)
    at com.sun.jna.Function.invokeString(Function.java:651)
    at com.sun.jna.Function.invoke(Function.java:395)
    at com.sun.jna.Function.invoke(Function.java:315)
    at com.sun.jna.Library$Handler.invoke(Library.java:212)
[...]I have to somehow tell javaw.exe that .NET dependencies are in another folder.
/// <summary>
/// Initializes a new instance of the <see cref="T:System.Object"/> class.
/// </summary>
static A()
{
    AppDomain.CurrentDomain.AssemblyResolve += (sender, e) =>
    {
        var path = Path.Combine(Directory.GetCurrentDirectory(), "bin\\F3BC4DNI.DLL");
        return Assembly.LoadFile(path);
    };
}