我想在我的项目中使用 JDBC.Net.Data。 在 .Net Core 6 控制台应用程序中它可以工作,但是当我在 .Net Core 6 Web API 中尝试它时,我收到以下错误。
“找不到 J2NET.Runtime。请检查是否为您的平台安装了运行时。”
两个项目的一切都很相似。
问题是,在Web应用程序中,Kesrel无法访问bin/debug/net6.0/runtimes文件夹中包含的JRE文件。
但是在我的控制台应用程序中,一切都与 Web 应用程序相同,甚至文件夹结构也是如此。
如何设置我的网络应用程序来解决此问题?
我也遇到了和你一样的问题。在搜索他们的 github 后,我发现这已于 2023 年 6 月 1 日被确定为问题。项目所有者在最新版本 1.3.0 中发布了修复程序。
请将您的软件包依赖项升级到 v1.3.0。
J2NET.Runtime.Win64
现在是J2NET.Runtime.win-x64
进行升级让我克服了运行时错误,但随后又发生了另一个错误:
"A task has been cancelled"
。单步执行 JDBC.Net 源代码后,var process = JavaRuntime.Execute(javaRunArgs);
(在 Models\JdbcBridge.cs
中)立即退出,并且取消任务。我发现java运行时在asp.net core项目执行目录中找不到JDBC.NET.Bridge.jar
。因此,我提出了一个拉取请求来修复该问题并完全限定 jar 文件的路径。
您可以等待 evan 完成拉取请求并发布另一个 nuget 包,或者您可以像我一样将它们的源代码包含到您的项目中,然后添加我的代码。然后,您可能需要将
JDBC.NET.Bridge.jar
从控制台应用程序 exe 目录复制到 JDBC.NET.Bridge\target
作为 JDBC.NET.Bridge-1.0-SNAPSHOT-jar-with-dependencies.jar
(用于调试,或仅在发布时使用 JDBC.NET.Bridge.jar
)。
我希望这有帮助。
@tcables 我遇到了同样的问题,“任务已取消”。我有你提到的一切,但它返回同样的问题