CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Aplicaciones Echa En Una Maquina De 32 Bits

<< < (3/5) > >>

lencho:

--- Citar ---Click derecho sobre el proyecto , build, platform target y selcciona x64 o Any CPU.
--- Fin de la cita ---
Cuando le doy click derecho, no me sale lo que mencionas, me sale lo que esta en la imagen adjunta. Trate de buscar en mi maquina lo que muestras y no lo encontre por ningun lado.


--- Citar ---desde luego debes tener un runtime de CLR instalado para ese tipo de sistemas.
--- Fin de la cita ---
En mi maquina ?, o en la maquina donde correra mi aplicacion ?


--- Citar ---Si, mas aun si usas tecnologias que generen código intermedio como CLR, sin embargo el ejecutable deberías haberlo generado para 32 bits o any CPU ya que el sistema operativo abstrae la maquina no como una de 64 sino como una de 32 y por demas el .net framework runtime de 64 no se deja instalar en un sistema corriendo a 32.
Unicamente lo peudes instalar en
--- Fin de la cita ---
Yo no modifique nada en mi Visual Studio, osea que supongo que esta generando para 32.


Segun este fragmento de un articulo, dice que yo deberia tener problema, por que yo estoy creando mi aplicacion con el .NET Framework 1.1. osea que mi aplicacion se trata como una aplicacion de 32 bits (que tambien la maquina donde lo quiero instalar tiene SO de 32 Bit y el procesador de 64 Bit).

--- Citar ---Todas las aplicaciones generadas con las versiones 1.0 y 1.1 de .NET Framework se tratan como aplicaciones de 32 bits y se ejecutan bajo WOW64 en common language runtime (CLR) de 32 bits en un sistema operativo de 64 bits. Además, las aplicaciones específicas de 32 bits generadas con la versión 2.0 de .NET Framework se ejecutarían bajo WOW64 en las plataformas de 64 bits.
--- Fin de la cita ---


BYTE.

JuanK:

--- Cita de: "lencho" --- cuando ejecuto el acceso directo a mi aplicacion instalada, no me muestra nada de mi aplicacion, directamente me lanza errores(uno tras otro)
--- Fin de la cita ---
Que errores?


--- Citar --- ¿Se genera un ejecutable PE? rolleyes.gif
--- Fin de la cita ---

se genera un ensamblado con codigo CIL, de hecho un ejecutable o libreria compilada con .net corre como si nada en linux/unix con el runtime de mono y viceversa uno compilado alli se ejecuta normalmente en windows.

Un ensamblado generado con .NET mantiene la cabecera PE tras la cual hay un pequeño bootstrapper que se encarga de cargar el CLR, este pequeño segmento de codigo realiza operaciones independientemente de la plataforma.

Lo único que modifica la opción de platform target es las optimizaciones y parte del código intermedio generado, ya que por ejemplo sino se le dice que esplicitamente se utilizara un tipo de dato Int32 sino int, en la plataforma de 64 ese int, aun en CLR, equivaldrá a 64 bit y no ha 32 bit.

Mono es capaz de ejecutar esos ensamblados porque ya sabe a partir de que dirección (relativa como es de suponerse) se inicia el código CIL.


--- Citar ---Click derecho sobre el proyecto , build, platform target y selcciona x64 o Any CPU.
--- Fin de la cita ---

Tienes razón no lo dije completo:

Click derecho sobre el proyecto propiedades, build, platform target y selecciona x64 o Any CPU.

Por demas esta decir que esto en en mi vs 2005.


Sin embargo he confirmado que Visual Studio 2003 posee muy poco soporte para aplicaciones de 64 bit en especial e cuanto a depuracion, pero tienes estas alternativas:

http://www.toymaker.info/Games/html/64_bit.html

Otra opcion importante de evaluar es pasarte a visual studio 2005, la mayoría de cambios que necesites realizar seran cambios menores o tal vez ninguno.

Eternal Idol:

--- Cita de: "JuanK" --- Un ensamblado generado con .NET mantiene la cabecera PE tras la cual hay un pequeño bootstrapper que se encarga de cargar el CLR, este pequeño segmento de codigo realiza operaciones independientemente de la plataforma.
--- Fin de la cita ---
La cabecera PE, entre otras muchas cosas, hara que el modo del procesador sea protegido u long en un S.O. de 64 bits y saltara al entry point del ejecutable despues de cargar todas las librerias enlazadas estaticamente y resolver las importaciones. Como ya dije cuando arranque cualquier ejecutable, sea de .NET o no, lo hara en 32 bits si el S.O. es de 32 bits y por lo tanto no puede existir ningun problema con el codigo ya que es irrelevante si el microprocesador soporta 64 bits o si mañana soportase 512 bits.

lencho:

--- Cita de: "Eternal Idol" ---
--- Cita de: "JuanK" --- Un ensamblado generado con .NET mantiene la cabecera PE tras la cual hay un pequeño bootstrapper que se encarga de cargar el CLR, este pequeño segmento de codigo realiza operaciones independientemente de la plataforma.
--- Fin de la cita ---
La cabecera PE, entre otras muchas cosas, hara que el modo del procesador sea protegido u long en un S.O. de 64 bits y saltara al entry point del ejecutable despues de cargar todas las librerias enlazadas estaticamente y resolver las importaciones. Como ya dije cuando arranque cualquier ejecutable, sea de .NET o no, lo hara en 32 bits si el S.O. es de 32 bits y por lo tanto no puede existir ningun problema con el codigo ya que es irrelevante si el microprocesador soporta 64 bits o si mañana soportase 512 bits.
--- Fin de la cita ---
asi es como yo igual pienso. Que no deberia tener ningun problema.

Disculpen por volver a revivir este post, pero es que lo habia dejau a un lado por que tenia otro proyecto, ahora estoy volviendo a terminar esto.

Estoy ahora en el VS 2005, y he tratado de generarlos con los 3 tipos de plataforma: X64, X86 y AnyCPU. Pero solo he podido crear para X86 y AnyCPU, pero no pude hacerlo para X64.
Me sale el siguiente error.

--- Citar ---Error   1   El archivo 'Aplicacion.exe' del resultado del proyecto 'Resultado principal de Aplicacion (Activo)', que tiene como destino 'AMD64' no es compatible con la plataforma de destino 'x86' del proyecto   D:\Mis Documentos\Visual Studio 2005\Projects\Setup1 (Aplicacion X64)\Setup1 (Aplicacion X64)\Setup1 (Aplicacion X64).vdproj   Setup1 (Aplicacion X64)
--- Fin de la cita ---

PD. Supongo que ese error es porque no puedo crear ningun ejecutable para 64 bit desde uno de 32 bit no ??

JuanK:
MM buena pregunta...

pero sospecho que para poder generar ese ejecutable necesitas tener la versión del sdk para 64 bits que desde luego solo corre en un sistema operativo de 64bits en una maquina de 64 bits... sino como le harias debug? no podrias.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa