编译的单声道丢失默认.NET库 - 未定义或导入System.Object
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译的单声道丢失默认.NET库 - 未定义或导入System.Object相关的知识,希望对你有一定的参考价值。
我在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
当我在OS X上使用单声道安装程序时,我从未收到任何这些错误。
(我正在构建单声道,因为我正在为未完成的.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"
您可以更改解决方案:
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
我在Debian unstable(Sid)上构建YouCompleteMe / OmniSharpServer时遇到了这个问题。正在发生的是安装的mono版本没有安装v4.5.2 Framework程序集,这是编译器在构建该解决方案/项目时默认的内容。
解决方法是将目标框架版本指定为可用的版本,或使目标框架版本可用(例如,在自定义编译期间)。
Cat Zimmermann的回应很贴切。
我解决了这个问题。重新运行Mavericks安装程序后,我忘了检查更新,并且Mono和Xamarin.android都有稳定的频道更新。一旦我安装它们,一切都很好。
与安装程序和主页构建的不同之处在于安装程序“知道”libarys所在的位置,而编译者则不知道。因此,除非您在编译应用程序时指向该位置,否则您的问题将会出现(基本上没有找到系统dll)。我建议调查the mcs documentation,并指定路径。 (编辑:使用“-L”参数应该这样做。)。
当我删除行时,我的项目开始编译
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
从中。
我不知道如何逻辑地支持这个,但在尝试解决这个问题几个小时后,
Unload .net standards project
因为我没有得到确切的问题并决定
reload it again
繁荣......它有效......仍然不知道它背后的逻辑原因是什么。如果有人,请在下面评论。
尝试删除该解决方案的所有项目中的bin和obj文件夹。 好像那些文件夹中有一些旧版本的visual studio生成的旧文件,这些文件与新版本的visual studio不兼容。
我通过将项目设置 - > general-> Target Framework更改为Mono / .NET 4.5来解决此问题。
希望对你有效。
以上是关于编译的单声道丢失默认.NET库 - 未定义或导入System.Object的主要内容,如果未能解决你的问题,请参考以下文章
预定义类型“System.Object”未定义或导入.net 4.6