如何在macOS平台上利用mkbundle对.Net命令台程序进行打包?

Posted 我不是代码教父

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在macOS平台上利用mkbundle对.Net命令台程序进行打包?相关的知识,希望对你有一定的参考价值。

[简介]
常用网名: 猪头三
出生日期: 1981.XX.XX
个人网站: http://www.x86asm.org
QQ交流: 643439947
编程生涯: 2001年~至今[共16年]
职业生涯: 14年
开发语言: C/C++、80x86ASM、php、Perl、Objective-C、Object Pascal、C#、Python
开发工具: Visual Studio、Delphi、XCode、Eclipse
技能种类: 逆向 驱动 磁盘 文件
研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全
项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测

[序言]
越来越喜欢.Net的跨平台能力, 在macOS平台上部署Xamarin Studio开发套件, 用C#写macOS程序, 是棒棒的. 简洁的代码, 高效率的开发. 在实际项目上, 已经在macOS部署了由C#开发的软件. 当然不光是我, 国外很多软件都进行了.Net Framework的迁移.

[对.Net命令台程序进行打包]
有时候, 我们写程序不一定是带界面的, 而是一个命令行控制程序, 那么这样的程序如何自带.Net运行库呢?很简单, 利用mkbundle命令进行打包就好了.
命令如下:
mkbundle -o 你的程序名 你的程序名.exe --deps --sdk 你的.Net SDK路径
例如: 我的程序名为 helloworld.exe 另外.Net SDK路径为: /Library/Frameworks/Mono.framework/Versions/4.8.0
命令输入如下:
mkbundle -o helloworld helloworld.exe --deps --sdk /Library/Frameworks/Mono.framework/Versions/4.8.0
这样就会生成一个自带有.Net运行库的执行文件helloworld, 如果你把这个helloworld执行文件放在一个没有任何.Net运行库的环境下, 是可以正常运行的.

[如果你遇到其他错误, 请尝试进行如下配置]

链接: https://gist.github.com/jlyonsmith/8424775

[深入了解mkbundle]
要深入了解这个打包命令的运作方式, 你可以阅读它的源码:https://github.com/mono/mono/blob/master/mcs/tools/mkbundle/mkbundle.cs



创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于如何在macOS平台上利用mkbundle对.Net命令台程序进行打包?的主要内容,如果未能解决你的问题,请参考以下文章

我是否需要特殊许可才能分发使用mkbundle编译的Mono可执行文件?

mkbundle - Linux man page

使用 mkbundle 从 C# 源代码创建 Linux 可执行文件时出现问题

Safari+macOS的全套漏洞利用链

5个MacOS蓝牙漏洞被发现 可实现零点击无接触远程利用

macOS libmalloc 堆利用之一:Tiny 篇