v8dotnet не может загрузить v8.net.proxy.interface

Я пытаюсь написать программу приветствия, которая выводит на консоль некоторые базовые js, используя v8dotnet.

у меня простое приложение

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, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null» или одна из ее зависимостей. Операция недопустима в текущем состоянии. (Исключение из HRESULT: 0x80131509)

Я поместил все dll, которые поставляются с двоичным файлом, в мою папку bin/debug и добавил справочную dll V8.NET (как описано в документации). Я пробовал несколько комбинаций установки x86 или x64 и установки версии dotnet на 4.0.

Я убедился, что у меня установлен дистрибутив Visual C++ 2012. Независимо от того, что я пытаюсь, я не могу заставить его работать. Любая помощь?


person user1167650    schedule 18.12.2013    source источник
comment
Не помещайте двоичные файлы в папку bin\Debug. Поместите их в другое место, а затем добавьте ссылку. При сборке проекта процесс сборки скопирует необходимые двоичные файлы в папку bin\Debug.   -  person YK1    schedule 18.12.2013
comment
такая же ошибка. пишет, что не удалось найти ‹файл›, но мои библиотеки DLL называются ‹file›_x86 и ‹file›_x64... может ли это быть связано с этим?   -  person user1167650    schedule 18.12.2013
comment
Просто добавьте, что когда он копирует dll в папку отладки, он копирует только v8.NET.dll и V8.Net.SharedTypes.dll.   -  person user1167650    schedule 18.12.2013
comment
Документация странная - во всяком случае, zip-файл, похоже, идет с папками x86 и x64. Не копируйте содержимое этих папок в bin\Debug — вместо этого скопируйте всю папку как есть. То есть у вас должны быть папки \bin\Debug\x86 и bin\Debug\x64.   -  person YK1    schedule 18.12.2013
comment
Я пробовал это, но я все еще получаю ту же ошибку, хех.   -  person user1167650    schedule 21.12.2013


Ответы (2)


Для тех, у кого такая же проблема, оказывается, это проблема безопасности.

правильная настройка - иметь ссылку V8.Net и V8.Net.SharedTypes и копировать папки x86/x64 в папку bin/debug.

Для каждой из DLL вы должны «разблокировать» их, щелкнув правой кнопкой мыши и выбрав свойства каждой из DLL.

person user1167650    schedule 22.12.2013
comment
Лучше разблокировать zip-файл перед распаковкой, чтобы вам не приходилось делать это для каждого файла. ;) - person James Wilkins; 07.08.2014

Вышла новая версия V8.NET, в которой больше не используются подпапки. Кроме того, больше нет библиотеки v8.dll, поскольку она статически связана с проектами V8.NET C++.

CodePlex закрыт, поэтому новый источник находится здесь: https://github.com/rjamesnw/v8dotnet

person James Wilkins    schedule 07.03.2019