3

首先,我见过这个问题,虽然问题看起来很相似,但并不相同。

我正在运行一个精简的单声道,没有使用 4.5 配置文件构建./configure --with-profile4=yes --with-profile4_5=no

我有一个针对 .NET 4.0 的应用程序,使用 mono 的xbuild. 当我针对精简的单声道安装运行它时,我收到此错误:

The assembly mscorlib.dll was not found or could not be loaded. It should have been installed in the `/opt/my-app/mono/lib/mono/4.5/mscorlib.dll' directory.

现在,我不只引用 4.0 程序集 - 没有来自 4.5,AFAICS。

为什么我会收到此错误?

我不确定它是否相关,但我在构建时收到此警告xbuild(但不是在构建时msbuild,虽然我仍然会在mscorlib.dll我的修剪过的单声道上运行):

warning CS1685: The predefined type `System.Runtime.CompilerServices.ExtensionAttribute' is defined multiple times.
Using definition from `mscorlib.dll' 

我也不确定这是否相关,但构建机器确实安装了 .NET 4.5。

4

1 回答 1

3

我想通了 - 我需要将 MONO_PATH 设置为:

/opt/my-app/mono/lib/mono/4.0:/opt/my-app/mono/lib/mono/3.5:/opt/my-app/mono/lib/mono/2.0:.

所以我需要告诉它在哪里寻找图书馆;我曾(错误地)假设这将基于单声道可执行文件的位置自动执行。

于 2014-05-13T14:25:41.517 回答