4

我可以从我的 MonoDevelop C# 项目中成功构建一个捆绑的 exe,但是当我运行捆绑包时,它什么也没做;立即无声地终止执行。我究竟做错了什么?

我在 64 位 Windows 7 上使用 Mono 2.10.5,cygwin 通常遵循这些说明,但进行了这些修改。我遵循的确切步骤是:

  1. 在 MonoDevelop 中创建新的 C# 控制台项目(仅包含Console.WriteLine ("Hello World!");
  2. 将目标更改为发布
  3. 构建所有
  4. 在cygwin中:mkbundle -c -o host.c -oo bundle.o --deps BundleTest.exe
  5. 编辑host.c,#undef _WIN32#endif后面添加#include <windows.h>
  6. 在cygwin中:gcc -mno-cygwin -o test.exe -Wall host.c 'pkg-config --cflags --libs mono-2|dos2unix' bundle.o
  7. 在命令提示符下:test.exe
  8. 在命令提示符下:BundleTest.exe

在第 7 步中,文本“Hello World!” 按预期在命令提示符下打印。在第 8 步中,命令提示符中没有打印任何内容;键入 rem 并按 Enter 可以得到完全相同的响应。

编辑:其他人编辑了这个问题以切换步骤 7 和 8,这从本质上改变了对观察到的行为的描述。我不知道为什么他们觉得这样做是有道理的,因为他们不是进行观察的人,但它与我思考这个问题的时间相去甚远,我不想只是换回方式他们是。因此,请注意,此编辑之前的最后一段可能不再准确反映我的原始观察结果。

4

1 回答 1

3

要构建控制台应用程序,您应该从 /lib/pkgconfig/mono-2.pc 中删除 -mwindows 标志

于 2011-10-19T20:57:17.947 回答