Necesito un conmutador de compilación condicional que sepa si estoy compilando para el tiempo de ejecución mono o MS .NET. ¿Cómo puedo hacer esto?¿Cómo puedo compilar condicionalmente mi C# para Mono vs. Microsoft .NET?
Respuesta
compilador El Mono define __MonoCS__
Pero, pero, pero, todo el punto de Mono es que se puede tener una asamblea que se construyen con VS y ejecutarlo en Mono, o viceversa.
Me parece que si necesita tener diferencias Mono vs MS.NET, entonces debe tomar esas decisiones en tiempo de ejecución.
La manera estándar para detectar Mono en tiempo de ejecución es:
bool runningOnMono = Type.GetType ("Mono.Runtime") != null;
Está claro que hay momentos en que el código en una sola plataforma será diferente para codificar en otra y es posible que desee hacer esto en tiempo de ejecución o tal vez compilar el tiempo. Algunas veces no se puede hacer en tiempo de ejecución.
Por ejemplo:
Mono se utiliza como base de juegos de herramientas IOS, Android y Mac de Xamarin. Si bien estos tienen muchos códigos comunes, también tienen clases que solo aparecen en una sola plataforma. Al desarrollar con estos kits de herramientas, desarrolla paquetes nativos que no son intercambiables entre plataformas.
Un caso simple es nombres de archivo y rutas. Estos difieren en cada plataforma. Es posible que tenga una pequeña condición para cargar las cadenas de manera diferente en cada plataforma. Algunas plataformas tienen nombres de archivo específicos para cada caso, y otras no.
Sería bueno si había un poco de código que devuelve la plataforma actual - ya sea UNIX, iOS, Mac, X86, X64, XBox etc ....
.NET ya tiene abstracciones para manejar rutas portables. 'System.IO.Path.DirectorySeparatorChar', por ejemplo. Por lo tanto, no es necesario crear su propia lógica para manejar las diferentes posibilidades del sistema operativo para ese caso. –
- 1. Incrustación: mono vs lua
- 2. Reflector .NET para Mono
- 3. ¿Puedo codificar en .NET/C# para Microsoft Dynamics AX?
- 4. ¿Cómo puedo compilar sqlite para WinRT/ARM?
- 5. Mono Cecil vs. PostSharp Core vs. Microsoft CCI para implementar el marco AOP
- 6. Cómo compilar PDFBox para .Net
- 7. tiempo Run tiempo VS Compilar (NET)
- 8. DotGNU vs Mono
- 9. .NET/Mono Install Base
- 10. Microsoft Roslyn vs CodeDom
- 11. ¿Soporta Mono .NET y compila C++/CLI?
- 12. ¿Cómo puedo compilar una solución C# bajo maven
- 13. Cómo apuntar .NET 4.0 bajo mono
- 14. ¿Cómo puedo reducir el tamaño de mi aplicación mono touch?
- 15. ¿Cómo detectar qué tiempo de ejecución de .NET se está utilizando (MS vs Mono)?
- 16. C# - MySQL vs Microsoft SQL Server
- 17. Cómo formatear condicionalmente una cadena en .Net?
- 18. ¿Cómo puedo compilar mi aplicación de 64 bits para que sea más rápida o mejor?
- 19. ¿Cómo puedo compilar la Biblioteca en tiempo de ejecución C de VS 2010?
- 20. .NET/Mono Database Engine
- 21. Mejor biblioteca gráfica para .NET/Mono
- 22. '==' vs string.equals C# .NET
- 23. compilar C "estándar" ++ en Visual Studio (no .net)
- 24. Compilador # directivo para dividir entre Mono y .NET
- 25. Mejores prácticas para la compilación cruzada .NET/MONO
- 26. ¿Cuál es la solución GWT de Microsoft para .NET?
- 27. Puede ejecutar aplicaciones compiladas mono framework.net (desde un VS env)
- 28. ¿Cómo correlacionar teclas de función para compilar mi programa?
- 29. ¿Cómo elegir la versión de .NET para compilar el proyecto?
- 30. Una forma de compilar la biblioteca C en .Net dll?
entender el punto, pero tiene un Mono muchas cosas que hacer en algunos lugares, y no tiene sentido penalizar la creación de MS ... Buen consejo, aunque gracias –
JOOI, ¿qué lagunas en Mono estás trabajando? –
Un caso de uso es tener GTK # GUI en Mono y Windows.Forms GUI en .Net. –