1

我有一个相当简单的应用程序,我在 OS X 10.7 (Lion) 上使用 MonoDevelop 3.0/XCode 4.0/.NET 4.0 构建。基本上,我有一个用于应用程序的 Windows GUI 和一个 Mac GUI,并且都共享一个类库。类库非常简单(故意地),并且出色地通过了 MoMA 测试。我的 OS X GUI 在我的开发 OS X 机器上完美运行,但是当我创建一个 .pkg 文件并将其安装在测试 OS X 机器上时,它根本无法运行。我在测试机器上安装了 Mono 运行时——仅运行时,而不是 SDK 或 MonoDevelop。该应用程序将打开,但是一旦我调用共享库,它就会失败

System.IO.FileNotFoundException:无法加载文件或程序集“xxx”或其依赖项之一。

我的共享库只有以下依赖项:

  • 系统
  • 系统配置
  • 系统核心
  • System.Xml.Linq
  • System.Data.DataSetExtensions
  • 微软.CSharp
  • 系统数据
  • 系统文件

当然,基本的 Mono 框架支持所有这些程序集,对吧?我错过了什么?我不敢相信发布这样一个简单的应用程序(通过 .pkg 文件,而不是 AppStore)是如此困难!有人可以指出我正确的方向吗?谢谢。

4

1 回答 1

1

好的,所以,总的菜鸟/额头拍打时刻:我的应用程序在我的开发 OS X 环境上运行但不在测试盒上运行的原因?.NET 框架!我用 Visual Studio 2012/.NET 4.5/Windows 7 构建了类库,用 MoMA 检查它,然后将它复制到我的开发 OS X,在我的 MonoMac 项目中设置对它的引用,一切都很好,对吧?那是因为那个盒子上有 MonoDevelop 和 .NET 框架!当我创建我的 .pkg 并将其安装在新的 OS X 机器上时,安装非常智能,可以下载和安装 Mono 环境,但不能下载和安装 .NET 框架,谁能责怪它呢?解决方案:针对 Mono 4.0 构建类库,并在我的 MonoMac 版本中使用该程序集!问题解决了。

感谢您的帮助和评论。请原谅这个问题的基本愚蠢:我不仅是 Mono/OS X 菜鸟,我也是桌面开发菜鸟。我是一个网络人,大声哭泣!

于 2013-05-09T15:38:44.190 回答