¿Hay un #define en C# que me permita saber, en tiempo de compilación, si estoy compilando para x86 (Win32) o x64 (Win64)?Plataforma/procesador de destino en tiempo de compilación
Respuesta
No es que yo sepa. Tendría que declarar el suyo en diferentes configuraciones de proyecto.
Por lo que sé, Visual Studio solo define las constantes DEBUG y TRACE. En lugar de declarar dicha constante de forma manual en las configuraciones del proyecto, puede usar NANT para construir su proyecto. Puede determinar la plataforma de compilación en tiempo de compilación y definir una directiva personalizada en consecuencia.
De manera predeterminada, no hay forma de hacerlo. La razón es que el código C# no está diseñado para dirigirse a una plataforma en particular, ya que se ejecuta en el CLR.
Sin embargo, es posible hacerlo manualmente. Puede usar las configuraciones de proyecto en Visual Studio para definir sus propias constantes. O si lo quiere un poco más eficiente, puede editar el .csproj usted mismo y transferir algunas configuraciones que tienen varias definiciones.
Por ejemplo, puede hacer que su archivo de proyecto se vea como el siguiente. Eliminé parte de la información para aclarar la información x86/amd64.
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<!-- ... -->
<DefineConstants>TRACE;DEBUG;X86</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|amd64' ">
<!-- ... -->
<DefineConstants>TRACE;DEBUG;AMD64</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
La adición de este a un archivo .csproj me da 2 nuevas configuraciones de plataforma en mi proyecto.
- 1. Recuperar el nombre de destino de salida como una cadena en tiempo de compilación en C++
- 2. Compilación de destino MSBuild sin dependencias
- 3. host de destino compilación cruzada y construir
- 4. offsetof en tiempo de compilación
- 5. ¿Cómo hacer una compilación condicional basada en nombres de destino?
- 6. Qt - Error 2 en tiempo de compilación
- 7. Tiempo de compilación de perfiles
- 8. Terminología Java: ¿Por qué error en tiempo de compilación y no excepción en tiempo de compilación?
- 9. Constantes de matriz en tiempo de compilación
- 10. Reflejo de tiempo de compilación en C#
- 11. hashing de cadena en tiempo de compilación
- 12. Tipo de especialización en tiempo de compilación
- 13. operador sizeof en tiempo de compilación o tiempo de ejecución
- 14. Crear plantillas T4 en tiempo de ejecución (tiempo de compilación)?
- 15. GCC optimización en tiempo flotante en tiempo de compilación
- 16. C++ Tiempo de compilación manipulación
- 17. Obtener tiempo de compilación JAR
- 18. tiempo de compilación en C trigonometría
- 19. dos tipos en tiempo de compilación
- 20. Generar números únicos en tiempo de compilación
- 21. ¿Cómo probar UIViewControllers en tiempo de compilación?
- 22. Valores enteros en tiempo de compilación
- 23. ¿Cómo usar 'ref' en tiempo de compilación?
- 24. Ejecutando PublicResXFileCodeGenerator en tiempo de compilación
- 25. ¿Cómo llenar NSArray en tiempo de compilación?
- 26. if/else en tiempo de compilación?
- 27. impresión sizeof (T) en tiempo de compilación
- 28. ¿Compila vistas en tiempo de compilación VS2010?
- 29. ¿Recursión en tiempo de compilación Scala?
- 30. Constantes en tiempo de compilación Clojure