Necesito compilar en dos una biblioteca de clases para Mono en Mac y .NET en PC. Hay algunos cambios menores que quiero hacer, pero esperaba dividir el código usando una directiva de compilación. ¿Alguna sugerencia?Compilador # directivo para dividir entre Mono y .NET
Respuesta
Bueno ciertamente se podría utilizar
#if MONO
y luego compilar con
gmcs -define:MONO ...
(O ponerlo en su configuración de generación Mono, por supuesto. Realmente depende de cómo se está construyendo su biblioteca.)
... ¿qué estás buscando más allá de eso?
manera preferida es utilizar la detección de tiempo de ejecución, ya que esto permite para los mismos conjuntos para ser utilizado en cualquiera de las plataformas:
using System;
class Program {
static void Main()
{
Type t = Type.GetType ("Mono.Runtime");
if (t != null)
Console.WriteLine ("You are running with the Mono VM");
else
Console.WriteLine ("You are running something else");
}
}
Mientras que un cheque de tiempo de ejecución es probablemente preferible, con el compilador de Mono, el definido previamente __MonoCS__
constante es útil, por ejemplo:
#if __MonoCS__
// Code for Mono C# compiler.
#else
// Code for Microsoft C# compiler.
#endif
Sólo asegúrese de que ningún desarrollador agrega __ __ MonoCS a su proyecto de Visual Studio construir propiedades y luego se pregunta por qué el compilado el código no funciona como se esperaba! : -/ – Stewart
Esta es la respuesta correcta y debe marcarse como tal. – BSalita
Estoy de acuerdo con @BSalita esta es la respuesta correcta (y funciona). En mi caso particular, necesitaba agregar una interfaz a un espacio de nombres. La versión Mono aún no la tiene. –
- 1. Reflector .NET para Mono
- 2. Diferencias en el desarrollo entre .NET y Mono
- 3. Diferencias de .Net y MONO portátiles
- 4. .NET/Mono Install Base
- 5. Compilador Prolog para .Net
- 6. Comenzando con JSON en .net y mono
- 7. ¿Soporta Mono .NET y compila C++/CLI?
- 8. .NET/Mono Database Engine
- 9. Compatibilidad de .NET csc y Mono mcs
- 10. La diferencia entre el compilador de Mono C# y el compilador MS C# con respecto al alcance
- 11. Mejor biblioteca gráfica para .NET/Mono
- 12. ¿Compilador de IL para .NET?
- 13. Problemas de compilador Mono-D DMD
- 14. Cómo apuntar .NET 4.0 bajo mono
- 15. Diferencias entre Java y C# y .NET
- 16. Cómo hacer un compilador paralelo para .NET
- 17. Mono y IHttpHandler
- 18. Botón dividir en .NET Winforms
- 19. Cómo decodificar wav, mp3 y/ogg en .Net/Mono?
- 20. ¿Controles de cuadrícula compatibles con .NET y Mono?
- 21. dlls Prexisiting (4 .NET framework) problema con mono para android
- 22. Mejores prácticas para la compilación cruzada .NET/MONO
- 23. Cómo dividir un NSDecimalnumber entre decimal y entero y reverso
- 24. Instalación de un ensamblaje en GAC para mono/.NET
- 25. Limitaciones en Mono para un desarrollador .Net Framework
- 26. CouchDB - .NET o Mono Tecnología equivalente
- 27. Compilador .NET, Java a JavaScript
- 28. Puentes entre Java y .NET
- 29. redistribuyendo y usando el compilador CS.exe (C#) para mi aplicación
- 30. Diferencia entre "prueba de fuzz" y "prueba de mono"
no ayuda a aquellos de nosotros que le gustaría utilizar las funciones de mono-específicos ... –