目前正在迁移2008/2010年开发的项目ASP.NET框架工作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#。 请帮助我,如果有人可以对此发表意见/想法。
由于
答案 0 :(得分:3)
我也遇到过同样的问题。我遇到了一个小问题的博客文章,我将在答案中提及。以下是我所指的博文: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
}
}
}
编辑:简单地链接到解决方案并不是回答问题的最佳方式。我改为概述了链接中提供的解决方案。