编译的单声道丢失默认.NET库 - 未定义或导入System.Object

Gee*_*esu 42 c# macos mono xbuild

我在OS X Mavericks上按照以下指南编译单声道:http://www.mono-project.com/docs/compiling-mono/mac/

现在,当我使用xbuild编译我的应用程序时,我收到以下错误:

CSC: error CS0518: The predefined type `System.Object' is not defined or imported
CSC: error CS0518: The predefined type `System.ValueType' is not defined or imported
CSC: error CS0518: The predefined type `System.Attribute' is not defined or imported
CSC: error CS0518: The predefined type `System.Int32' is not defined or imported
CSC: error CS0518: The predefined type `System.UInt32' is not defined or imported
CSC: error CS0518: The predefined type `System.Int64' is not defined or imported
CSC: error CS0518: The predefined type `System.UInt64' is not defined or imported
CSC: error CS0518: The predefined type `System.Single' is not defined or imported
CSC: error CS0518: The predefined type `System.Double' is not defined or imported
CSC: error CS0518: The predefined type `System.Char' is not defined or imported
CSC: error CS0518: The predefined type `System.Int16' is not defined or imported
CSC: error CS0518: The predefined type `System.Decimal' is not defined or imported
CSC: error CS0518: The predefined type `System.Boolean' is not defined or imported
CSC: error CS0518: The predefined type `System.SByte' is not defined or imported
CSC: error CS0518: The predefined type `System.Byte' is not defined or imported
CSC: error CS0518: The predefined type `System.UInt16' is not defined or imported
CSC: error CS0518: The predefined type `System.String' is not defined or imported
CSC: error CS0518: The predefined type `System.Enum' is not defined or imported
CSC: error CS0518: The predefined type `System.Delegate' is not defined or imported
CSC: error CS0518: The predefined type `System.MulticastDelegate' is not defined or imported
CSC: error CS0518: The predefined type `System.Void' is not defined or imported
CSC: error CS0518: The predefined type `System.Array' is not defined or imported
CSC: error CS0518: The predefined type `System.Type' is not defined or imported
CSC: error CS0518: The predefined type `System.Collections.IEnumerator' is not defined or imported
CSC: error CS0518: The predefined type `System.Collections.IEnumerable' is not defined or imported
CSC: error CS0518: The predefined type `System.IDisposable' is not defined or imported
CSC: error CS0518: The predefined type `System.IntPtr' is not defined or imported
CSC: error CS0518: The predefined type `System.UIntPtr' is not defined or imported
CSC: error CS0518: The predefined type `System.RuntimeFieldHandle' is not defined or imported
CSC: error CS0518: The predefined type `System.RuntimeTypeHandle' is not defined or imported
CSC: error CS0518: The predefined type `System.Exception' is not defined or imported
Run Code Online (Sandbox Code Playgroud)

当我在OS XI上使用单声道安装程序时,从未收到任何这些错误.

(我正在构建单声道,因为我正在为未完成的.NET框架添加功能)

运行autogen.sh的结果:https://gist.github.com/Geesu/149332f3f877c891d387 运行make的结果:https://gist.github.com/Geesu/4296f7d4c6c368d6986d

Cat*_*ann 14

如果有类似的警告:

/lib/mono/4.5/Microsoft.Common.targets:  warning : Unable to find framework corresponding to the target framework moniker '.NETFramework,Version=v2.0'. Framework assembly references will be resolved from the GAC, which might not be the intended behavior.
Run Code Online (Sandbox Code Playgroud)

您可以在命令行上覆盖.NET Framework:

xbuild /p:TargetFrameworkVersion="v4.0"
Run Code Online (Sandbox Code Playgroud)

您可以更改解决方案:

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
Run Code Online (Sandbox Code Playgroud)


Nat*_*lte 9

我在Debian unstable(Sid)上构建YouCompleteMe/OmniSharpServer时遇到了这个问题.正在发生的是安装的mono版本没有安装v4.5.2 Framework程序集,这是编译器在构建该解决方案/项目时默认的内容.

解决方法是将目标框架版本指定为您可用的版本,或使目标框架版本可用(例如,在您的自定义编译期间).

Cat Zimmermann的回应很贴切.


Sie*_*jet 3

我遇到了这个问题。我忘记在重新运行 Mavericks 安装程序后检查更新,并且 Mono 和 Xamarin.Android 都有可用的稳定通道更新。一旦我安装了它们,一切都构建得很好。

  • 原始海报谈论的是从头开始编译的单声道安装,而不是通过 Xamarin 或通过单声道安装程序下载。 (2认同)