2009-06-24 41 views
16

Mi máquina de desarrollo es Win XP Pro de 32 bits y la máquina de producción es Windows Server 2008 (64 Bit) con IIS 7. En mi máquina de desarrollo, quiero compilar ASP.NET (Usando el compilador aspnet) al código de bytes de 64 bits.Compilar ASP.NET a 64 BIT

¿Alguien puede decirme cómo hacerlo? No sugiera ninguna forma de ejecutar una aplicación de 32 bits en un entorno de 64 bits.

Quiero que la aplicación de 64 bits se compile en la máquina de 32 bits para que cuando se ejecute aproveche al máximo 64 bits O/S sin ninguna emulación.

Respuesta

6

.net las aplicaciones se redireccionarán a sí mismas para el entorno de máquina de destino suponiendo que no eligió específicamente compilar en modo de 32 bits. Esto se puede encontrar en las opciones de compilación del proyecto.

+1

correcta, sólo asegúrese de que no está optimizando para una arquitectura específica y usted debe estar todo listo. –

24

abandonar la plataforma objetivo en Cualquier CPU y .NET se ejecuta automáticamente de forma nativa en 64 bits cuando se ejecuta en un sistema operativo de 64 bits

Aclaración:

(esto comenzó como un comentario, pero pensé que podría ser interesante para la pregunta también)

En realidad, nunca se compila a una arquitectura especial. Siempre compila a IL.

Eso es algo así como Java Bytecode. Y ese bytecode es el mismo para 32 bit y 64 bit.

La máquina virtual (.NET Framework) en la máquina se ejecuta el código luego compila el IL al código máquina real mientras se ejecuta (a través de la compilación Just In Time). Entonces, no importa dónde compile, siempre terminará en IL que es poco ignorante.

La configuración en .NET es solo una instrucción en IL que le dice al JIT (compilador Just in Time) que use específicamente 32 bits/64 bits. Al mover ese bit en su ensamblaje, puede ejecutarlo en AnyCpu o x64 sin necesidad de volver a compilarlo.

Este ajuste sólo se utiliza y se necesita en caso de llamar a código nativo que no es poco ignorante (en la interacción con los componentes COM o hacer p/invocar llamadas)

+0

Estoy compilando ASP.NET (modo de sistema de archivos y no proyecto de aplicación web) a través de aspnet_compiler (solo .NET 2.0 de 32 bits está instalado y, por lo tanto, usa un marco de 32 bits). Lo que entendí es que si copio todos los dlls que están bajo \ bin en mi máquina de producción, se ejecutará completamente en el modo de 64 bits sin emulación alguna. Solo quería confirmar que no debería haber ningún problema de rendimiento cuando la aplicación se compila en una máquina de 32 bits y se ejecuta en 64 bits. Como no tengo un proyecto de aplicación web, en ese caso aspnet_compiler se compilará en el modo AnyCPU? Gracias de antemano –

8

Hay una opción en Visual Studio 2013 ahora para dirigir IIS Express (que generalmente se utiliza para la depuración) para ejecutar en modo de 64 bits.

Es en Tools -> Options -> Projects and Solutions -> Web Projects -> Use the 64 bit version of IIS Express…

+1

Esta respuesta ha resuelto mi problema hoy. Ve a la votación y date cuenta de que es mi propia respuesta de hace dos años, ¡FTW! –