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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章