Esiste un #define in C# che mi consente di sapere, in fase di compilazione, se sto compilando per x86 (Win32) o x64 (Win64)?Piattaforma/processore di destinazione al momento della compilazione
risposta
Non che io sappia. Dovresti dichiarare il tuo in diverse configurazioni di progetto.
Per quanto ne so, Visual Studio definisce solo le costanti DEBUG e TRACE. Invece di dichiarare tale costante manualmente nelle configurazioni del progetto, è possibile utilizzare NANT per creare il progetto. Può determinare la piattaforma di compilazione in fase di compilazione e definire di conseguenza una direttiva personalizzata.
Per impostazione predefinita, non è possibile eseguire questa operazione. Il motivo è che il codice C# non è progettato per indirizzare una particolare piattaforma mentre viene eseguita su CLR.
Tuttavia è possibile consegnare questo rotolo. È possibile utilizzare le impostazioni di configurazione del progetto in Visual Studio per definire le proprie costanti. Oppure, se lo desideri un po 'più razionalizzato, puoi modificare te stesso il file .csproj e lanciare altre configurazioni che hanno varie definizioni.
Ad esempio è possibile rendere il file di progetto simile al seguente. Ho rimosso alcune informazioni per rendere chiare le informazioni 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>
Aggiungerlo a un file .csproj mi dà 2 nuove configurazioni di piattaforma nel mio progetto.
- 1. stampa sizeof (T) al momento della compilazione
- 2. ID tipo C++ al momento della compilazione
- 3. Come testare UIViewControllers al momento della compilazione?
- 4. Rileva C# versione al momento della compilazione
- 5. Genera numeri univoci al momento della compilazione
- 6. Scala - Imposizione della dimensione del vettore al momento della compilazione
- 7. Determina la lunghezza della stringa netta al momento della compilazione
- 8. catch std :: allocazioni di funzioni al momento della compilazione
- 9. Convalida il contenuto di std :: initializer_list al momento della compilazione
- 10. Valutazione dell'espressione di primo livello al momento della compilazione
- 11. Disabilita la registrazione in Java al momento della compilazione
- 12. Perché Java associa le variabili al momento della compilazione?
- 13. Forza una stretta coercizione implicita al momento della compilazione
- 14. Rileva la presenza del modello al momento della compilazione
- 15. Qual è un valore noto al momento della compilazione?
- 16. Leggere un file in una stringa al momento della compilazione
- 17. Come si generano staticamente dati float al momento della compilazione?
- 18. Valutare una funzione al momento della compilazione con Template Haskell
- 19. dedurre intero spazio vettore al momento della compilazione
- 20. L'UB garantito può essere rifiutato al momento della compilazione?
- 21. display intero al momento della compilazione a static_assert()
- 22. Do C# lambdas esiste solo al momento della compilazione?
- 23. Errore gradle Studio Android al momento della compilazione
- 24. C++: disambigua questo codice al momento della compilazione?
- 25. Visualizzare le viste al momento della compilazione VS2010?
- 26. Come sostituire un elemento tupla al momento della compilazione?
- 27. Perché la località viene determinata al momento della compilazione?
- 28. come applicare tipo non generico al momento della compilazione
- 29. Gli array possono essere indicizzati al momento della compilazione?
- 30. intermediario - percorso risorsa per CDN al momento della compilazione