2009-06-24 23 views
16

Il mio computer di sviluppo è Win XP Pro a 32 bit e il computer di produzione è Windows Server 2008 (64 bit) con IIS 7. Sul mio computer di sviluppo voglio compilare ASP.NET (utilizzando il compilatore di aspnet) al codice byte a 64 bit.Compilare ASP.NET a 64 BIT

Qualcuno può dirmi come si fa? Si prega di non suggerire alcun modo per eseguire un'applicazione a 32 bit in ambiente a 64 bit.

Desidero che l'applicazione a 64 bit venga compilata su una macchina a 32 bit in modo che, quando viene eseguita, sfrutti appieno l'O/S a 64 bit senza emulazione.

risposta

6

. Le app si re-targetizzano per l'ambiente macchina di destinazione presumendo che non si sia scelto specificamente di compilare in modalità a 32 bit. Questo può essere trovato sotto le opzioni di costruzione del progetto.

+1

corretta, tanto per essere sicuro che non state ottimizzando per una specifica architettura e si dovrebbe essere tutto a posto. –

24

lasciare la piattaforma target a AnyCPU e .NET verrà automaticamente eseguito in modo nativo su 64 bit quando eseguito su un sistema operativo a 64 bit

Chiarimento:

(questo è iniziato come un commento, ma ho pensato che potrebbe essere interessante anche per la domanda)

In realtà non si compila mai per un'architettura speciale. Compilati sempre a IL.

Questo è qualcosa come Bytecode Java. E questo bytecode è lo stesso per 32 bit e 64 bit.

La macchina virtuale (.NET Framework) sulla macchina, il codice viene eseguito, quindi compila l'IL sul codice macchina corrente durante l'esecuzione (tramite la compilazione di Just In Time). Quindi, non importa dove ti compili, finirai sempre con IL che è un po 'ignorante.

L'impostazione in .NET è solo un'istruzione in IL che indica al compilatore JIT (Just in Time) l'uso specifico di 32 bit/64 bit. Sfogliando quel bit nell'assemblaggio, è comunque possibile eseguirlo in AnyCpu o x64 senza ricompilazione.

Questa impostazione viene utilizzata solo e necessaria in caso si chiama fuori per il codice nativo che non è po-ignorante (quando si interagisce con i componenti COM o fare P/Invoke chiamate)

+0

Sto compilando ASP.NET (modalità file system e non progetto web application) tramite aspnet_compiler (solo .NET 2.0 32 bit è installato e quindi utilizza framework a 32 bit). Quello che ho capito è che se copio tutte le DLL che sono sotto \ bin sulla mia macchina di produzione funzionerà completamente in modalità 64 bit senza alcuna emulazione. Volevo solo confermare che non ci dovrebbero essere problemi di prestazioni quando l'applicazione è compilata su una macchina a 32 bit e viene eseguita su 64 bit. Dato che non ho un progetto di applicazione web, in quel caso aspnet_compiler verrà compilato in modalità AnyCPU ??. Grazie in anticipo –

8

C'è un'opzione in Visual Studio 2013 ora per dirigere IIS Express (che di solito viene utilizzato per il debug) per l'esecuzione in modalità 64 bit.

E 'in Tools -> Options -> Projects and Solutions -> Web Projects -> Use the 64 bit version of IIS Express…

+1

Questa risposta ha risolto il mio problema oggi. Vai a votare e renditi conto che è la mia risposta di due anni fa, FTW! –

Problemi correlati