1

我正在尝试编写一个 hello world 程序,该程序使用 v8dotnet 将一些基本的 js 打印到控制台。

我有一个简单的应用程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using V8.Net;

namespace v8test
{
    class Program
    {
        static void Main(string[] args)
        {
            var v8engine = new V8Engine();
        }
    }
}

但这似乎不起作用

附加信息:无法加载文件或程序集“V8.Net.Proxy.Interface,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。操作在当前状态下是不合法的。(来自 HRESULT 的异常:0x80131509)

我已将二进制文件附带的所有 dll 放在我的 bin/debug 文件夹中,并添加了参考 V8.NET dll(如所描述的文档)。我尝试了设置 x86 或 x64 并将 dotnet 版本设置为 4.0 的多种组合。

我确保我安装了 Visual c++ 2012 再分发版。无论我尝试什么,我似乎都无法让它发挥作用。有什么帮助吗?

4

2 回答 2

2

对于那些有同样问题的人来说,事实证明这是一个安全问题。

正确的设置是引用 V8.Net 和 V8.Net.SharedTypes 并将 x86 / x64 文件夹复制到 bin/debug 文件夹中。

对于每个 DLL,您可以通过右键单击并单击每个 DLL 上的属性来“取消阻止”它们。

于 2013-12-22T22:17:57.123 回答
0

有一个新版本的 V8.NET 不再使用子文件夹。此外,不再有 v8.dll,因为它静态链接到 V8.NET C++ 项目。

CodePlex 已关闭,所以新的来源在这里:https ://github.com/rjamesnw/v8dotnet

于 2019-03-07T02:13:41.037 回答