www update mac framework downloads c# macos mono xbuild

c# - update - Compilación mono faltante de bibliotecas.NET predeterminadas: System.Object no está definido ni importado



update mono (8)

Intente eliminar las carpetas bin y obj en todos los proyectos de esa solución.

Parece que esas carpetas tenían archivos antiguos generados por una versión anterior de Visual Studio, que no son compatibles con la nueva versión de Visual Studio.

He compilado mono en OS X Mavericks siguiendo la guía que se encuentra aquí: http://www.mono-project.com/docs/compiling-mono/mac/

Ahora, cuando compilo mi aplicación usando xbuild, obtengo los siguientes errores:

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

Cuando usé el instalador mono en OS XI nunca recibí ninguno de estos errores.

(Estoy creando mono porque estoy agregando funcionalidad al marco .NET que no se completó)

Resultado de ejecutar autogen.sh: https://gist.github.com/Geesu/149332f3f877c891d387 Resultado de ejecutar make: https://gist.github.com/Geesu/4296f7d4c6c368d6986d


La diferencia con el instalador y la compilación en casa es el hecho de que el instalador "sabe" dónde se encuentran las bibliotecas, mientras que el compilado no lo hace. Entonces, a menos que apunte a esa ubicación al compilar su aplicación, su problema se producirá (básicamente no se encuentra ningún dll del sistema). Recomendaría buscar en la documentación de mcs y especificar la ruta. (EDIT: con el parámetro "-L" debería hacerlo).


Me acoste a este problema. Olvidé buscar actualizaciones después de volver a ejecutar el instalador de Mavericks, y había actualizaciones de canales de Estable disponibles para Mono y Xamarin.Android. Una vez que los instalé, todo estaba bien.


Me encontré con este problema mientras construía YouCompleteMe / OmniSharpServer en Debian inestable (Sid). Lo que está sucediendo es que la versión instalada de mono no tiene instalados los ensamblajes de v4.5.2 Framework, que es lo que el compilador toma de forma predeterminada al compilar esa solución / proyecto.

La solución consiste en especificar la versión del marco de destino como una que tiene disponible, o hacer que esté disponible la que se está seleccionando (por ejemplo, durante su compilación personalizada).

La respuesta del gato Zimmermann es acertada.


Mi proyecto comenzó a compilarse, cuando quité las líneas.

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

de eso.


No sé cómo respaldar esto lógicamente, pero después de intentar arreglar esto por un par de horas,

Unload .net standards project

porque no estaba teniendo el problema exacto y decidí

reload it again

boom ... Funcionó ... todavía no sé cuál es la razón lógica detrás de esto. Si alguien lo hace, por favor comenta abajo.


Resuelvo este problema cambiando la configuración del proyecto-> general-> Marco de destino a Mono / .NET 4.5.

Espero que funcione para ti.


Si hay una advertencia similar a:

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

Puede anular .NET Framework en la línea de comandos:

xbuild /p:TargetFrameworkVersion="v4.0"

Puedes cambiar tu solución:

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>