我正在尝试为我的 mono 程序创建一个 .app 包以在 Mac OS X 上运行,但是尽管阅读了几乎所有关于 macpack 和 bundle mono 的文章和文档,但这些方法都不起作用。
使用 macpack 将二进制文件成功 bundle 在 .app 包中:
macpack -m:x11 -o:. -r:sqlite3.dll -r:Nini.dll -r:extraIcons.ini -r:APP_DATABASE.db3 -r:APP_Values.db3 -r:./Documents/manual.pdf -r:GemBox.Spreadsheet.dll -r :Mono.Data.SqliteClient.dll -a:APP.exe -n:APP
.当我尝试从包中启动程序时,发生了这种情况:
FFMACM-2:MacOS dev$ open -a APP
LSOpenURLsWithRole() failed for the application /Users/dev/Workspace/Software/APP.app with error -10810.
我尝试使用 this method但脚本失败并出现以下错误:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Nini, Version=1.1.0.0, Culture=neutral, PublicKeyToken=691faec150a7fa7b' or one of its dependencies.
File name: 'Nini, Version=1.1.0.0, Culture=neutral, PublicKeyToken=691faec150a7fa7b'
at APP.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0
logout
我没有想法。 Nini.dll 就在它应该在的地方。我在 GUI 中使用 GTK#。
最佳答案
现在可以使用 MonoMacPackager 为 MacOS X 创建包。您可以在此处找到详细信息 http://www.mono-project.com/MonoMacPackager .
但是,您在这里看到的问题是您的包中缺少 dll(Nini 程序集)。它需要位于您的应用程序路径中(在 bundle 后)才能正确加载。
关于c# - 如何为 Mac OS 创建一个 .app mono bundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5862972/