目前正在将 2008/2010 ASP.NET Frame work 3.5 /4 开发的项目迁移到 2012 ASP.NET with Frame Work 4.5 我的项目有 2 个 DLL 支持 J#。加载 WSDL 时,它不显示错误。但是运行时它的抛出错误
'java.lang.System' 的类型初始值设定项抛出了一个异常。内部异常:无法加载 DLL 'vjsnativ':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)内部异常:无法加载 DLL 'vjsnativ':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)
尝试更换dll但没有用。从在线更新中了解到,ASP.net 2012 中不再支持 J#。如果有人能对此有所了解,请帮助我。
谢谢
我也遇到了同样的问题。我发现了一篇小博客文章,其中包含该问题的解决方案,我将在我的回答中引用它。这是我引用的博客文章:http://blogs.windwardreports.com/davidt/2011/02/calling-j-code-from-net-40.html。
请注意,我不能将此解决方案归功于我。这是我个人在自己的项目中使用过的解决方案。
从 .NET 4.0 或更高版本调用 J# DLL 时,您将收到错误 vjsnativ.dll 无法定位。上面链接的解决方法显式加载库。这是一个示例解决方案,几乎取自上述链接:
using System;
using System.IO;
using System.Runtime.InteropServices;
namespace Test
{
class Program
{
[DllImport("kernel32", SetLastError = true)]
static extern IntPtr LoadLibrary(string lpFileName);
static void Main(string[] args)
{
if (Environment.Version.Major >= 4)
{
string folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), @"..\Microsoft.NET\Framework\v2.0.50727");
folder = Path.GetFullPath(folder);
LoadLibrary(Path.Combine(folder, "vjsnativ.dll"));
}
// Now you can use J# in newer .NET versions
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:简单地链接到解决方案并不是回答问题的最佳方式。相反,我概述了链接中提供的解决方案。
| 归档时间: |
|
| 查看次数: |
5616 次 |
| 最近记录: |