gpt4 book ai didi

c# - 'java.lang.System' 的类型初始值设定项引发异常。内部异常 : Unable to load DLL 'vjsnativ' :

转载 作者:太空狗 更新时间:2023-10-30 01:18:58 25 4
gpt4 key购买 nike

目前正在将 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
}
}
}

编辑:简单地链接到解决方案并不是回答问题的最佳方式。相反,我概述了链接中提供的解决方案。

关于c# - 'java.lang.System' 的类型初始值设定项引发异常。内部异常 : Unable to load DLL 'vjsnativ' :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24993333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com