编译单声道缺less的默认.NET库 – System.Object没有定义或导入

我已经在OS X Mavericks上编译了mono,按照下面的指南: 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 

当我在OS X上使用单声道安装程序时,从来没有收到任何这些错误。

(我build立单声道,因为我正在添加function的.NET框架没有完成)

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

如果有类似的警告:

 /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. 

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

 xbuild /p:TargetFrameworkVersion="v4.0" 

你可以改变你的解决scheme:

 <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> 

我在Debian unstable(Sid)上构build了YouCompleteMe / OmniSharpServer时遇到了这个问题。 发生了什么事是安装的mono版本没有安装v4.5.2框架程序集,这是编译器在构build解决scheme/项目时默认的内容。

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

卡特·齐默尔曼的回答是恰当的。

我把这个问题搞砸了。 重新运行小牛安装程序后,我忘了检查更新,Mono和Xamarin.Android都提供稳定的频道更新。 一旦我安装了它们,一切都很好。

与安装程序和主版本的区别在于,安装程序“知道”libarys所在的位置,而编译的位置不在。 所以,除非在编译应用程序时指向该位置,否则会出现问题(基本上没有find系统DLL)。 我会build议查看mcs文档 ,并指定path。 (编辑:与“-L”参数应该这样做。)。

我的项目开始编译,当我删除线

 <NoStdLib>true</NoStdLib> <NoConfig>true</NoConfig> 

从中。