Mono mkbundle 工具无法创建二进制文件,并抱怨输出文件不可用

问题描述 投票:0回答:1

根据 this thread 关于在 .NET 上运行 C# 应用程序的建议,我已经使用 mono 编译了我的应用程序。 我使用最新的 Visual C# .NET Express Edition 构建了原始应用程序。 它在 Windows 上的 .NET 上运行良好。 然后我打开 Cygwin 并导航到我的源代码,在单声道下使用以下命令再次编译项目:

$ mcs <myProjectHere>.cs

这会生成 MyProject.exe,它可以从 Cygwin 中成功运行,也可以从 Window 命令行成功运行。 使用的命令是:

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

只是为了好玩,简单地说:

C:\...>MyProject.exe

一切都按预期进行。 然后,我尝试使用 mkbundle 命令将单声道编译的可执行文件构建为静态链接的二进制文件,如下所示:

$ mkbundle -o MyProject MyProject.exe --deps

这就是事情开始走下坡路的地方。 它一开始运行得很好,然后抱怨输出文件(可能是 MyProject.exe)由于繁忙而无法打开。 全部的完整输出都在这里:

 $ mkbundle -o 程序 Program.exe --deps
    操作系统是:Windows
    来源:1 自动依赖性:真实
       嵌入:c:\Documents and Settings sweeney\My Documents\Visual Studio 2008
    \项目\TestConsole\TestConsole\Program.exe
       嵌入:C:\PROGRA~1\Mono-2.2\lib\mono.0\mscorlib.dll
    编译:
    as -o temp.o temp.s
    gcc -mno-cygwin -g -o Program -Wall temp.c `pkg-config --cflags --libs mono|dos2
    unix` 温度.o
    /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/bin/ld:无法操作
    输出文件 Program.exe:设备或资源繁忙
    Collect2: ld 返回 1 退出状态
    [失败]

我声称我的unix gcc工具链已安装并且状况良好,因为我最近已经能够使用它在eclipse中成功编译一些c ++应用程序(尽管我认为我应该对任何数量的问题持开放态度......)。

有人遇到过这样的事情吗? 我被难住了...

c# linker mono mkbundle
1个回答
5
投票

看起来它正在尝试输出到

MyProject.exe
,这与输入文件相同。

尝试跑步

$ mkbundle -o ProgramOutput Program.exe --deps

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

mkbundle

© www.soinside.com 2019 - 2024. All rights reserved.