Domanda

Per completare alcuni test ho bisogno di caricare la versione a 64 bit di un assembly anche se sto eseguendo una versione a 32 bit di Windows. È possibile?

È stato utile?

Soluzione

Non sono sicuro del motivo per cui vorresti farlo, ma suppongo che tu possa farlo. Se non si fa nulla per dirlo diversamente, CLR caricherà la versione dell'assembly specifica per la CPU in uso. Di solito è quello che vuoi. Ma ho avuto un'occasione in cui dovevo caricare la versione IL neutrale di un assieme. Ho usato il Metodo di caricamento per specificare la versione. Non l'ho provato (e altri qui suggeriscono che non funzionerà per un assembly eseguibile), ma suppongo che tu possa fare lo stesso per specificare che vuoi caricare la versione a 64 bit. (Dovrai specificare se desideri la versione AMD64 o IA64.)

Altri suggerimenti

Da CLR Via C # (Jeff Richter):

" Se i tuoi file assembly contengono solo codice gestito sicuro, stai scrivendo codice che dovrebbe funzionare su entrambe le versioni di Windows a 32 e 64 bit. No sono necessarie modifiche al codice sorgente per l'esecuzione del codice su entrambe le versioni di Windows.

In effetti, il file EXE / DLL risultante prodotto dal compilatore verrà eseguito anche su Windows a 32 bit le versioni x64 e IA64 di Windows a 64 bit! In altre parole, il file verrà eseguito su qualsiasi macchina su cui è installata una versione di .NET Framework. "

" Il compilatore C # offre un'opzione della riga di comando / platform. Questa opzione consente di specificare se l'assembly risultante può essere eseguito su macchine x86 che eseguono versioni di Windows a 32 bit solo, macchine x64 che eseguono solo Windows a 64 bit o macchine Intel Itanium che eseguono 64 bit Solo Windows. Se non si specifica una piattaforma, il valore predefinito è anycpu, che indica che l'assembly risultante può essere eseguito su qualsiasi versione di Windows.

Windows a 32 bit non può eseguire file eseguibili a 64 bit senza una VM / emutalor

Windows a 32 bit può essere compilato per l'esecuzione su Windows a 64 bit

No, non è possibile eseguire assiemi compilati per 64 bit su un sistema che esegue la versione a 32 bit di Windows.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top