C# 如何在Unity项目中实现此服务/dll?

C# 如何在Unity项目中实现此服务/dll?,c#,unity3d,jnbridge,C#,Unity3d,Jnbridge,我正在使用一个名为JNBridge的服务,该服务用于为C#中使用的Java文件创建代理。该服务运行良好,我可以在Visual Studio 2017中轻松创建C#解决方案,并从创建的代理调用Java文件。然而,我想在Unity项目中使用它,但我不确定如何实现这一点 为了在Visual Studio 2017中实现这一点,我首先创建了要使用的代理,并将其构建到dll中。之后,我创建了一个控制台应用程序,并将.dll添加为引用(+服务所需的另一个.dll)。该服务还需要使用应用程序配置文件和非.NE

我正在使用一个名为JNBridge的服务,该服务用于为C#中使用的Java文件创建代理。该服务运行良好,我可以在Visual Studio 2017中轻松创建C#解决方案,并从创建的代理调用Java文件。然而,我想在Unity项目中使用它,但我不确定如何实现这一点

为了在Visual Studio 2017中实现这一点,我首先创建了要使用的代理,并将其构建到dll中。之后,我创建了一个控制台应用程序,并将.dll添加为引用(+服务所需的另一个.dll)。该服务还需要使用应用程序配置文件和非.NET.dll。这两个文件必须复制到build文件夹才能运行应用程序

当我尝试在Unity中重新创建它时,我将两个.NET.dll文件添加到Assets文件夹中,它似乎可以工作,因为脚本会自动完成.dll中的代码。但是在Unity控制台中,我得到一个
FileNotFoundException
。我也不知道如何包括非.NET dll和配置文件

System.IO.FileNotFoundException: Could not load file or assembly 'DotNetToJavaProxies, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
File name: 'DotNetToJavaProxies, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
UnityEditor.EditorAssemblies:ProcessInitializeOnLoadAttributes()

我对Unity不太熟悉,所以我在问,我能做到这一点吗?使用配置文件和.dll,并修复错误。

JNBridgePro不支持Unity,因此这不太可能奏效,尽管我不得不说我们从未尝试过。从新版本10开始,JNBridgePro确实支持.NET Framework和.NET Core 3.0(在Windows和Linux上)。也许其中的一种情况对你有用。如果您还有其他问题,请联系JNBridge支持。

您是在发布“.NET标准”库,还是只发布核心和完整框架的程序集?我们正在考虑,但目前没有时间表。我设法让它正常工作。主要问题是JNBShare.dll使用Unity不支持的AppDomain。我用ILSpy提取了JNBShare.dll源代码,并构建了一个不使用AppDomain的版本。这是可行的,但代理dll会抱怨,因为我生成的版本没有使用您的私钥签名。但是,使用原始JNBShare.dll统一构建项目,然后用我构建的版本替换它(并将jnbauth_x64.dll与exe放在同一个文件夹中)是可行的。这很有趣,但我必须指出,你真的不应该这样做,因为这违反了我们的许可证。是的,当然,我意识到这一点,并只是作为概念的证明。