PDA

Ver la versión completa : Compilar aplicaciones .NET



biyonder
30-09-2011, 17:58
Hola chicos.

Os comento mi situación: tengo Microsoft Visual Studio 2010 y llevo desde hace unas semanas trasteando aplicaciones en C# (por cierto me resulta un lenguaje cómodo y rápido de entender). El problema llega a la hora de querer usar una de mis aplicaciones en otro sistema. Realizo la compilación, todo bien en el sistema local, pero en el sistema ajeno no funciona.

Busqué en google y vi en un foro que .NET es algo parecido a la máquina virtual de Java, es decir y si no entendí mal, que se necesita .NET framework en todos los sistemas en los que se quiera ejecutar dichas aplicaciones. Esto me parece un poco atraso pero puede ser política de funcionamiento y entonces ya no digo más.

Mi pregunta es si habría alguna manera de poder ejecutar la aplicación en otro sistema sin tener .net framework o visual studio 2010, quizás incluyendo en un .rar las librerías necesarias, pero el caso es que desconozco esas librerías. También vi que algunos lo que hacían eran construir un instalador y así se olvidaban de tener que elegir las DLL necesarias, pero no quiero tener que tirar de instaladores por cada aplicación que haga (de hecho las que llevo por ahora, si necesitasen de instalación nadie las probaría jaja). Si por el contrario no habría ninguna manera sin tener instaladas las DLL, lanzo otra pregunta: ¿al compilador visual c# express también le pasa esto? Porque pensaba que a lo mejor es sólo cosa de visual studio.

Gracias de antemano chicos, saludos!

hckr
30-09-2011, 18:30
Si estás compilando para .NET framework 4 necesitarás instalarlo en la otra máquina. mira la arquitectura con la que compilas... ponla a 32 bits a ver.

biyonder
01-10-2011, 11:04
Lo tenía en .NET framework 4 Client Profile pero en la lista desplegable no me deja coger otra opción distinta que nosea .Net Framework 4 a secas. Lo que dices de 32 bits no sé cómo hallarlo.

hckr
01-10-2011, 11:11
A ver, en el Visual Studio 2010, al crear un proyecto ya sea VB, C# o F#, te da la opción de escoger .Net Framework 4, 3, 2, o 1 incluso. Eso es por si la máquina de destino no tiene instalada la 4 poder compatibilizarlo.

Cuando estás en el IDE, en mitad de un proyecto, arriba sale para seleccionar Debug o Release, pues al lado sale x86. Si está en x64 lo pones en 86.

Un saludo, espero haberme explicado, y si puedes sube alguna captura del proyecto a ver si te puedo ayudar mejor.

biyonder
01-10-2011, 12:11
Vale lo de la opción de versión de .net framework al crear un proyecto lo he localizado pero sólo tengo instalada la 4. ¿Qué versión tendría que instalar para conseguir mi propósito?

Con respecto a lo de x86, en las propiedades del proyecto seleccioné la pestaña Generar y tengo seleccionado Plataforma: x86 (ha estado siempre así).

hckr
01-10-2011, 23:58
Mmm a mi me da la opción de escoger todos los frameworks... Compila en 32 bits a no ser que la máquina destino sea x64 (en ese caso también se puede x86, pero se recomienda 64bits).

No sé si debes instalar las otras versiones de framework... Hazlo al revés, en la máquina destino haz todas las actualizaciones de windows, incluyendo las de Fw, a ver si funciona...

biyonder
02-10-2011, 11:49
La máquina en cuestión es de 32 bits pero yo lo que quiero no es ir actualizando windows y demás, porque varios amigos han probado también las aplicaciones y no les funciona, y tienen Windows XP. Yo lo que busco es incluir junto con el ejecutable alguna DLL para que les funcione.

Si esto es imposible, ¿sabes si visual c# express edition le pasa lo mismo? Porque con Visual Basic 6 no pasaba: tú generabas el .exe, tomabas las DLL de los controles que habías incluído en la aplicación y listo, se ejecutaba en todas partes. Y si pasa también con visual c# express, ¿hay algún compilador visual * de C# en el que no pase, por muy antiguo que sea?

Gracias hckr por tu atención.

biyonder
09-10-2011, 17:47
Hola de nuevo. Reincido en mi pregunta, ¿alguien sabe si hay algún compilador de C# que me permita diseñar formularios con componentes (como visual .net) y que no necesite el net framework para ser ejecutado en otra máquina, tal y como se podía hacer con Visual Basic 6?

Ya de camino pregunto otra cosa, ¿hay alguna manera de crear un instalador o algo en visual studio que permita instalar todos los componentes necesarios en la máquina ajena de manera compacta y sencilla?

Gracias.

PD: Para quien quiera hacer un virus o algo, con Visual C# .NET no podría porque los que no tuvieran net framework no se infectarían :P

hckr
09-10-2011, 21:22
investiga en http://www.remotesoft.com/


PD: Para quien quiera hacer un virus o algo, con Visual C# .NET no podría porque los que no tuvieran net framework no se infectarían :P

Esa es la mierda de programar malware con .NET. Normalmente se programa con el Fw 2 o 3, que ya lo trae instalado la mayoría de los windows... (el xp sp algo, el vista y el 7).

hystd
09-10-2011, 21:33
Puedes intentar generar el .exe mediante mkbundle de Mono. Allí le indicas las dependencias y te genera el ejecutable embebido para windows con todas las dependencias que le hayas indicado.

Un saludo.

biyonder
09-10-2011, 23:20
hckr, ¿qué es Fw?

hystd, lo que dices de Mono, sé que es una plataforma que es independiente del SO pero, ¿cómo paso loque llevo hecho de C# a Mono? Y otra pregunta, ¿cómo sé las dependencias que necesito para generar el embebido?

Saludos.

hckr
10-10-2011, 15:42
Esque estaba escribiendo desde el móvil y pensé que lo pillarías :P es Framework.

He estado investigando, y sin usar Framework es muy dificil... No entiendo por qué no puedes compilar con Framework 3, 2 o 1 >.< en mi visual studio si puedo...

biyonder
10-10-2011, 18:21
El caso es que mirando en Programas instalados del sistema, veo que tengo los Fw 1.0, 2.0, 3.0 y 3.5 pero en el Visual Studio, en el desplegable sólo me sale el 4.0 :S. Si le doy a 'Obtener más versiones de Fw' me lanza el explorador con la página de descargas. No lo entiendo...

hystd
10-10-2011, 20:40
hystd, lo que dices de Mono, sé que es una plataforma que es independiente del SO pero, ¿cómo paso loque llevo hecho de C# a Mono? Y otra pregunta, ¿cómo sé las dependencias que necesito para generar el embebido?


Aquí tienes un ejemplo, paso a paso.

http://www.tutorialized.com/view/tutorial/Mkbundle-bundle-Mono-with-applications/52680