Mono herramienta mkbundle incapaz de crear binario con la queja de que el archivo de salida no está disponible
-
05-09-2019 - |
Pregunta
De acuerdo con las sugerencias de los este hilo en ejecutar aplicaciones C # .NET sans he compilado mi aplicación con mono. Yo construí la aplicación original utilizando la última Visual C # .NET Express Edition. Funciona muy bien en .NET en Windows. entonces abrí Cygwin y navegado a mi fuente, donde he realizado el proyecto de nuevo, bajo el mono con el siguiente comando:
$ mcs <myProjectHere>.cs
Esto produce MyProject.exe, que se puede ejecutar desde dentro de Cygwin con éxito, y se puede ejecutar desde la línea de comandos de la ventana con éxito. Comandos utilizados son:
$ mono MyProject.exe
C:\...>mono MyProject.exe
y sólo por diversión, simplemente:
C:\...>MyProject.exe
Todo el trabajo como se esperaba. Luego trató de construir el mono ejecutable compilado en un binario enlazado estáticamente con el comando mkbundle de la siguiente manera:
$ mkbundle -o MyProject MyProject.exe --deps
Aquí es donde las cosas empiezan a ir cuesta abajo. Comienza lo suficientemente bien y luego se queja de que el archivo de salida (presumiblemente, MyProject.exe) no se puede abrir porque está ocupado. La salida completa de todo esto es que aquí:
$ 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]
Yo reclamo que está instalado gcc mi cadena de herramientas de Unix y en buenas condiciones, ya que he sido capaz de compilar con éxito unas pocas aplicaciones ++ c en Eclipse usando recientemente (aunque se supone que debería estar abierto a cualquier número de problemas ... ).
Cualquiera que he topado con algo como esto? Estoy perplejo ...
Solución
Parece como si estuviera tratando de salida en MyProject.exe
, que es el mismo que el de entrada.
Trate de ejecutar
$ mkbundle -o ProgramOutput Program.exe --deps
Esto es sólo una suposición, por cierto, ya no sé mkbundle
.