Complesso domanda, cercherò di semplificare:
Qualsiasi applicazione Net può essere compilato sia per x86 (32-bit) e x64 (64-bit) in una sola volta. In realtà lo fanno di default. Puoi cambiarlo modificando la CPU di destinazione nella scheda Build in Proprietà del progetto. Gli obiettivi supportati sono "Qualsiasi" (compilazione Just-In-Time a 32 o 64 bit a seconda del supporto del sistema operativo), "x86" verrà compilato a 32 bit che funziona su tutte le piattaforme e "x64" verrà compilato a 64 -bit che funziona solo su piattaforme a 64 bit.
Sì. Vedi sopra. Si noti inoltre che a volte viene eseguito un secondo livello di compilazione, ovvero NGEN. Crea un'immagine nativa per un tipo specifico di CPU. Tuttavia, se si scherza con questo già lo sai.
Per dll scegliamo "Qualsiasi" CPU per loro. Per .EXE (entry point) devi scegliere Any, x86 o x64. Ci sono alcune cose da considerare: le app x86 .Net che accedono ai file .dll nativi di Windows (interpo) richiedono i file .dll x86. Pertanto, un'app a 64 bit non può accedere alle chiamate API a 32 bit e viceversa. Questo è spesso un motivo per cui le app .Net falliscono sui sistemi operativi a 64 bit. Il modo per risolvere questo è quello di fare riferimento a file .dll corretti o semplicemente impostare l'applicazione .Net su x86 (32 bit) sotto le proprietà. Tutte le altre dipendenze diventeranno automaticamente 32 bit durante la compilazione del Just-In-Time se sono impostate su "Qualsiasi".
I vantaggi di 64-bit sono complessi. Ci sono vantaggi e svantaggi a seconda di cosa fa la tua app. Il vantaggio più ovvio è che l'applicazione può rompere la barriera di memoria da 2 GB. Lo svantaggio è come spiegato in # 3, se si fa riferimento a 64 bit .dll la tua app non verrà eseguita su sistemi operativi a 32 bit.
Tutto viene fuori dalla scatola. Non preoccuparti di nulla, tranne tutte le cose di cui sopra. :)
fonte
2010-12-28 10:44:06
In genere, si compila _non_ le librerie in modo esplicito per 32 o 64 bit ma per "qualsiasi CPU" e si lascia che sia la macchina di destinazione (o l'applicazione principale) a scegliere, quale correre. –
Se scegli una modalità, l'app sarà più leggera ma non potrà essere eseguita sull'altra piattaforma ... – ykatchou