Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mono和Winforms:使.exe可为其他人运行_Winforms_Macos_Mono - Fatal编程技术网

Mono和Winforms:使.exe可为其他人运行

Mono和Winforms:使.exe可为其他人运行,winforms,macos,mono,Winforms,Macos,Mono,我对Mono和Mac操作系统的整体开发还不熟悉。我在PC上编写了一个C#/WinForms应用程序,并使用: mcs Form1.cs ... mono Form1.exe 我的可执行文件运行。我希望能够直接在另一台Mac上运行此可执行文件(或其他类型的文件),而无需Mono。我该怎么做呢?如果没有Mono runtime或.NET Framework,用C编写的应用程序将无法执行。这与我们在Java应用程序中遇到的情况完全相同——如果没有安装JRE(Java运行时环境),我们无法运行Java

我对Mono和Mac操作系统的整体开发还不熟悉。我在PC上编写了一个C#/WinForms应用程序,并使用:

mcs Form1.cs ...
mono Form1.exe

我的可执行文件运行。我希望能够直接在另一台Mac上运行此可执行文件(或其他类型的文件),而无需Mono。我该怎么做呢?

如果没有Mono runtime或.NET Framework,用C编写的应用程序将无法执行。这与我们在Java应用程序中遇到的情况完全相同——如果没有安装JRE(Java运行时环境),我们无法运行Java应用程序

您可能已经注意到,Mac OS X有两个版本的Mono:

  • MDK(单声道开发工具包)
    仅当您希望从源代码构建应用程序时才需要它

  • MRE(Mono运行时环境)
    它明显小于MDK,并且是执行使用MDK编译的应用程序所必需的

  • 如果无法在目标机器上安装MRE,则必须选择不同的编程语言。最好是不需要安装运行时环境的环境,例如C/C++


    EDIT:我刚刚发现MDK包含一个名为mkbundle的工具,它将一个exe和所有带有libmono的程序集打包到一个二进制包中。查看以了解更多信息。

    我已使用有关mkbundle工具的信息更新了我的答案。这可能是你的一种方式。