按照建议从该线程上运行C#应用程式SANS .NET我使用单编译我的应用程序。我内置采用最新的Visual C#.NET Express Edition的原始应用。它运行在Windows上的.NET罚款。我然后使用以下命令打开了Cygwin和导航到我的消息来源,我再次编译了该项目,下单:

$ mcs <myProjectHere>.cs

此产生MyProject.exe,这可以从在Cygwin成功运行,并且可以从窗口命令行成功运行。使用的命令是:

$ mono MyProject.exe
C:\...>mono MyProject.exe

和只是踢,只需:

C:\...>MyProject.exe

如预期的所有工作。然后我试图建立可执行编译成使用mkbundle命令一个静态链接的二进制单如下:

$ mkbundle -o MyProject MyProject.exe --deps

这就是事情开始走下坡路。它开始不够好,然后抱怨说,输出文件(大概,MyProject.exe)不能打开,因为它正忙。这一切的全输出是在这里:

    $ 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]

我要求我的UNIX gcc工具安装和良好的条件,因为我已经能够成功编译在最近使用它蚀了几个C ++应用程序(虽然我认为我应该是开放给任何数量的问题... )。

有谁碰到这样的事?我难倒...

有帮助吗?

解决方案

好像它试图输出到MyProject.exe,这是相同的输入文件。

尝试运行

$ mkbundle -o ProgramOutput Program.exe --deps

这只是一个猜测,顺便说一句,因为我不知道mkbundle

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top