我正在使用 MonoMac 为 Mac 开发一个非常简单的应用程序。我有一个由两个项目组成的解决方案:主项目和自动更新程序。主项目引用自动更新程序,因此自动更新程序成为主应用程序的应用程序包的一部分。
运行主应用程序时,如果有新更新,我想启动自动更新程序。在 Windows 上,这是一个简单的Process.Start("C:\path\to\updater.exe")
; 然而,在 Mac 上,这似乎是有问题的。以上述方式执行此操作时(使用 updater.exe 的绝对路径和相对路径时),什么都没有发生,调试只是说当我尝试获取任何信息时进程已经结束。
我尝试使用 AppleScript 启动更新程序:
do shell script "mono /path/to/bundle.app/Contents/MonoBundle/updater.exe"
但这会产生错误“应用程序包中没有 Info.plist 文件或 Info.plist 文件中没有 NSPrincipalClass,正在退出”。当我尝试以相同的方式启动主可执行文件时会出现同样的错误,并且我知道 Info.plist 已为此正确配置(因为我确实能够启动应用程序),所以肯定还有其他错误.
我在做一些明显错误的事情吗?我只想从主可执行文件启动更新程序,我怎么做并不重要。