首先,我看到了this question ,虽然问题看起来很相似,但其实并不相同。
我正在运行一个精简的单声道,使用 ./configure --with-profile4=yes --with-profile4_5=no
在没有 4.5 配置文件的情况下构建。
我有一个以 .NET 4.0 为目标的应用程序,它是使用 mono 的 xbuild
构建的。当我针对精简后的单声道安装运行它时,出现此错误:
找不到或无法加载程序集 mscorlib.dll。
它应该已经安装在“/opt/my-app/mono/lib/mono/4.5/mscorlib.dll”目录中。
现在,我不只引用 4.0 程序集——AFAICS 4.5 中没有任何内容。
为什么我会收到此错误?
我不确定它是否相关,但我在使用 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。
最佳答案
我想通了 - 我需要将 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 :.
所以我需要告诉它去哪里寻找库;我曾(错误地)假设这将根据 mono 可执行文件的位置自动进行。
关于.net - 未找到或无法加载程序集 mscorlib.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23626577/