如何在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



你可能感兴趣的:(Mac,OS,X)