Selon les suggestions de this thread en cours d'exécution C# apps sans .NET J'ai compilé mon application en mono. J'ai construit l'application originale en utilisant la dernière version Visual C# .NET Express Edition. Il fonctionne bien sur .NET sous Windows. Je me suis alors ouvert jusqu'à Cygwin et navigué à ma source où je compilé à nouveau le projet, sous mono en utilisant la commande suivante:Mono mkbundle outil incapable de créer binaire avec la plainte que le fichier de sortie est indisponible
$ mcs <myProjectHere>.cs
Ce produit MyProject.exe, qui peut être exécuté à partir de Cygwin avec succès, et peut être exécuter à partir de la ligne de commande Windows avec succès. Les commandes utilisées sont les suivantes:
$ mono MyProject.exe
C:\...>mono MyProject.exe
et juste pour le plaisir, tout simplement:
C:\...>MyProject.exe
Tous les travaux comme prévu. J'ai ensuite essayé de construire les mono exécutable compilé en un binaire lié statiquement en utilisant la commande mkbundle comme suit:
$ mkbundle -o MyProject MyProject.exe --deps
C'est là que les choses commencent à descendre. Il commence assez bien et se plaint ensuite que le fichier de sortie (vraisemblablement, MyProject.exe) ne peut pas être ouvert car il est occupé. La sortie complète de tout cela est ici:
$ mkbundle -o Program Program.exe --deps OS is: Windows Sources: 1 Auto-dependencies: True embedding: c:\Documents and Settings\bsweeney\My Documents\Visual Studio 2008 \Projects\TestConsole\TestConsole\Program.exe embedding: C:\PROGRA~1\Mono-2.2\lib\mono\2.0\mscorlib.dll Compiling: as -o temp.o temp.s gcc -mno-cygwin -g -o Program -Wall temp.c `pkg-config --cflags --libs mono|dos2 unix` temp.o /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/bin/ld: cannot op en output file Program.exe: Device or resource busy collect2: ld returned 1 exit status [Fail]
Je prétends que mon toolchain gcc unix est installé et en bon état parce que je suis en mesure de compiler avec succès quelques C++ des applications dans Eclipse en utilisant récemment (bien que je supposé que je devrais être ouvert à n'importe quel nombre de problèmes ...).
Quelqu'un at-il jamais rencontré quelque chose comme ça? Je suis perplexe ...
Cela a réellement fonctionné! Je pensais que 'Program' et' Program.exe' seraient deux fichiers distincts mais il s'avère que 'cygwin' ou peut-être' mkbundle' ajoutait '.exe' à la fin de' Program'. –
Wow, mes pouvoirs psychiques s'améliorent! L'indice était le message 'impossible d'ouvrir le fichier de sortie Program.exe', soit dit en passant. – configurator
est logique - j'ai supposé qu'il faisait référence au programme d'entrée qui * était * en fait nommé Program.exe. en tout cas je vois maintenant l'erreur de mes manières ... merci! –