当前位置:首页 > 操作系统 > MacOs

c#-MAC OS X El Capitan上的Mono:LSOpenURLsWithRole

我有一个.NET软件,可在Linux和MAC上的Mono上运行.该软件在OSX Lion的Mono 3.6.0上与Macpack一起打包为.app,并通过PackageMaker创建了安装程序.在El Capitan之前,它在所有新版本的OSX上都能正常工作,从而触发以下错误:

<code>LSOpenURLsWithRole() failed with error -10810 for the file .../Applications/MyApp.app
</code>

我已将开发文件移至El Capitan上,并设法将其与Mono 4.0.4.4中的Macpack打包在一起.使用时似乎没有显示该错误

<code>open -a MyApp.app
</code>

现在唯一的问题是它不能从双击开始.该软件由安装程序安装在/ Applications中.它可以使用打开命令从控制台正常启动,但不能双击.有没有一种方法可以通过模仿控制台中的双击来看到错误或其他内容?

PS.同样在El Capitan上,唯一起作用的Mono框架是最新的4.0.4.4或为El Capitan设计的4.2.1.二进制文件的新位置位于/usr/local/bin中,而不是/usr/bin中,并且仅在安装之前存在/usr/local/bin的情况下才有效,否则将无法识别mono命令.

谢谢

解决方法:

同样的问题在这里(El Capitan).那就是我解决的方式(Mono 4.2.1)

1)创建一个空脚本,并替换由macpack创建的脚本(例如:KeePass.app/Contents/MacOS/KeePass)

2)使用单声道和exe文件的完整路径

<code>#!/bin/sh
DIR=$(cd "$(dirname "$0")"; pwd) 
/usr/local/bin/mono $DIR/../Resources/KeePass.exe
</code>

我认为多数民众赞成在某种程度上与系统完整性保护(csrutil)有关,但不确定.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐