Visual J # не работает в.net 4

Я попытался преобразовать проект, основанный на времени выполнения vjs, в vs2010, но при попытке запустить он выдает ошибку.

Выдает ошибку: "Не удалось загрузить файл или сборку" vjslib "или одну из ее зависимостей. Была предпринята попытка загрузить программу с неверным форматом ".

Я переустановил среду выполнения VJS, но, похоже, это не помогло.

Есть ли способ заставить работать.net 4 с этим?

5 ответов

Решение

Очень простое решение - вызов кода J# из.NET 4.0

Вы берете на себя управление и загружаете его сначала, предоставляя явный путь. Затем в следующий раз, когда это необходимо, он уже знает путь (или он уже загружен в домен приложений).

Вам нужно будет использовать функцию LoadLibrary, поэтому импортируйте ссылку pinvoke:

[DllImport("kernel32", SetLastError = true)]
static extern IntPtr LoadLibrary(string lpFileName);

При загрузке (основная функция в консоли /WinForms или в Global.asax Application_Start):

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"));
}

Я скачал распространяемый пакет Microsoft Visual J# Version 2.0 с http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4712 и установил его. Проблема решена.

Я получил это к работе, скопировав C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vjsnativ.dll (для 64-битной Microsoft.NET\Framework64\v2.0.50727\vjsnativ.dll) в каталог отладки / выпуска моего приложения,

Я подозреваю, что Microsoft потребуется выпустить еще один распространяемый пакет j# для работы с.net 4.0. Между тем, этот обходной путь делает хорошую работу.

Единственный способ заставить его работать - это скопировать C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vjsnativ.dll в папку C:\Windows\Microsoft.NET\Framework\v4.0.30319. См. http://community.microfocus.com/borland/managetrack/starteam/w/knowledge_base/17108.error-unable-to-load-dll-vjsnativ-the-specified-module-could-not-be-found-exception-from-hresult-0x8007007e.aspx

Чтобы добавить к существующим ответам, я обнаружил, что решения не работают для меня.

Первым делом я восстановил распространяемый пакет Microsoft Visual J# 2.0 -SE (x64) с помощью панели управления Windows (щелкните правой кнопкой мыши и выберите команду " Восстановить"). Это было в случае, если я нанес какой-либо ущерб в моих предыдущих попытках решить проблему.

Я уже реализовал решение, предоставленное Дэвидом Тиленом.

1 Дополнительный шаг закрыл сделку для меня (решил проблему): Скопируйте "vjscor.dll", "vjslib.dll" и "vjsnativ.dll" из C:\Windows\Microsoft.NET\Framework64\v2.0.50727 в C:\Windows\Microsoft.NET\Framework\v2.0.50727

Таким образом, в основном пакет Microsoft поместил правильные библиотеки в 64-битную платформу.NET, и мне пришлось вручную переместить их в 32-битную папку, которая затем была скопирована в папку моего решения решением Дэвида Тилена (выше).

Другие вопросы по тегам