【问题标题】:MonoMac Could Not Load Assembly or DependencyMonoMac 无法加载程序集或依赖项
【发布时间】:2013-05-09 23:38:44
【问题描述】:

我有一个相当简单的应用程序,我在 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.Core
  • System.Xml.Linq
  • System.Data.DataSetExtensions
  • Microsoft.CSharp
  • System.Data
  • System.Xml

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

【问题讨论】:

  • 过去,我成功地创建了一个 MonoMac pkg 文件。所以它可能的。
  • 是的,我同意,这是可能的。我为一个没有任何外部引用的应用程序创建了一个 .pkg 文件,它运行良好。问题是,您是否成功发布了引用在其他地方创建的类库的 MonoMac pkg 文件?它访问数据了吗?它是否具有与我列出的相同的依赖项?只是说你做到了并没有多大帮助......对不起。
  • 实际上,IIRC,我直接在 MonoDevelop 中创建了类库。它只使用 .NET 2 功能。也许您应该在 "...或其依赖项之一..." 部分进行调查,并获取错误正在谈论哪些依赖项的详细信息?
  • 好吧,也许这就是我的问题:我在 Windows 7 上的 Visual Studio 2012 中构建了类库,然后在 MonoDevelop 中引用了它。我通过 MoMA 分析仪运行了组件,它说没问题,但显然不是。我知道查找错误的唯一地方是 Apple 系统日志 (ASL),它没有告诉我是哪个依赖项导致了问题。有更好的地方看吗?
  • 谢谢,Uwe。请参阅下面的解决方案。比我想象的要基本得多。

标签: c# macos monomac


【解决方案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 版本中使用 that 程序集!问题解决了。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-12
    • 2012-01-14
    • 1970-01-01
    相关资源
    最近更新 更多