Невозможно загрузить DLL 'lua52': указанный модуль не найден
У меня та же проблема, как описано здесь:
https://github.com/NLua/NLua/issues/33
Хотя я следовал инструкциям по созданию консольного приложения...
http://www.screencast.com/t/M12TqePQxW
... что прекрасно работает, когда я создаю проект библиотеки и ссылаюсь на него из другого проекта (в данном случае, проекта Web API) возникает следующая ошибка:
Unable to load DLL 'lua52': The specified module could not be found.
На этой линии:
using (var lua = new Lua())
Как проект библиотеки можно сделать с помощью пакета NLua nuget без сбоев?
1 ответ
Это та же проблема, что и описанная в проблеме GitHub, в пакете Nuget отсутствуют две библиотеки DLL, которые необходимы для использования lua52.dll. Одно небольшое отличие, текущий пакет (версия 1.3.2.1) включает в себя более новую версию lua52.dll, которая была построена с VS2013. И поэтому имеет зависимость от msvcr120.dll и msvp120.dll.
Помните, что это может измениться в будущем, когда Nuget обновит ваш проект.
Как есть, вам нужно скачать и установить распространяемый пакет Visual C++ для VS2013. Запустите vcredist_x64.exe и vcredist_x86.exe, чтобы ваш проект мог работать как в 32-битном, так и в 64-битном режиме.
Чтобы избежать необходимости делать это на компьютере, на котором вы хотите развернуть свою программу, я рекомендую скопировать две библиотеки DLL из c:\windows\system32 (64-разрядная версия) или c:\windows\syswow64 (32-разрядная версия) каталоги в тот же каталог, что и ваш EXE.
Автор пакета мог бы лучше справиться со сборкой этого пакета. Если не считать включения DLL в пакет, лучшим решением было бы перестроить lua52.dll с параметром /MT, чтобы эти зависимости были связаны между собой. Попробуйте нажать кнопку " Создать проблему", чтобы сообщить ему об этом.