2011-10-19 6 views
0

J'essaie de faire fonctionner un système Lua dans mon application .NET 4.0. J'utilise LuaInterface comme encapsuleur pour Lua, qui est compilé sous .NET 4.0LuaInterface - FileNotFoundException

L'application fonctionne parfaitement bien lors de l'exécution de scripts Lua sur mon ordinateur de développement, sur lequel est installé le VS2010. Mais lorsque vous l'exécutez sur un autre ordinateur, j'obtiens une exception FileNotFoundException.

System.IO.FileNotFoundException: Could not load file or assembly 'lua51.dll' or one of its dependencies. The specified module could not be found.

Le lua51.dll est dans le même dossier que l'application, donc je ne vois pas là un problème. Cela signifie donc qu'il ne peut pas trouver un fichier dont dépend lua51.dll. Et c'est le problème.

De quels fichiers ai-je besoin pour que mes utilisateurs s'installent pour que cela fonctionne correctement?

Répondre

0

Vous pouvez analyser ceci en utilisant la journalisation Fusion Binding. Cela peut être fait sur la ligne de commande, enregistré dans un fichier ou visualisé via une interface graphique (FUSLOGVW.exe). Commencez here et voyez si cela vous permet de démarrer.

+0

Merci pour la réponse. Cela ressemble à ça pourrait être bon. Je suis en train de tester l'Exception en utilisant une machine virtuelle, ce que je peux faire à partir de cet ordinateur, ce qui est bien. Comment puis-je installer l'environnement de construction DEBUG? – FrenchyNZ

+0

Pourriez-vous clarifier ce que signifie "DEBUG Build Environment"? – Dono

+0

Mon mauvais, Très mal expliqué. Ce que je cherchais, c'était la possibilité d'utiliser FUSLOGVW.exe sur ma machine virtuelle, car je n'ai pas installé VS2010 dessus. Mais en regardant cette réponse - http://stackoverflow.com/questions/1012252/using-fuslogvw-exe-on-a-machine-with-no-visual-studio-installed m'a aidé beaucoup – FrenchyNZ

0

Si votre système de développement et le système concerné par le problème ne sont pas de la même architecture (32 bits -> 64 bits), cela peut vous causer des problèmes. J'ai répondu à une question similaire à C# external library (Lua) call problem

"J'ai eu beaucoup de problèmes avec .NET, LuaInterface, et Lua5.1 interagissant sur des machines 64 bits. Lua5.1 ne compile que 32 bits et cela vous demande à (je crois) construire aussi le projet LuaInterface en 32 bits Essayez de changer "Projet -> Propriétés -> Construire -> Cible de la Plateforme" en "x86" dans vos projets .NET. "

0

J'ai eu le même problème.

Je l'ai résolu en installant le vcredist_x86.exe (paquet redistribuable Visual C++ 2010) à partir de Microsoft, ce qui ajoute les DLL nécessaires au système.

J'ai essayé de compiler lua51.dll avec l'option/MT, mais cette option est incompatible avec l'option/CLR, qui est nécessaire. Ensuite, j'ai essayé d'installer le paquet redist 2008 (comme le dit le site LuaInterface) qui n'a pas fonctionné (peut-être ai-je compilé lua moi-même avec VS 2010 - je ne sais plus). La version 2010 a résolu mon problème.