elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Unas dudas sobre .NET
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Unas dudas sobre .NET  (Leído 5,009 veces)
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Unas dudas sobre .NET
« en: 11 Noviembre 2014, 21:09 pm »

Hola a todos, tengo unas preguntas sobre .NET (VisualStudio 2012, C#, formulario)

  • 1) Si un ordenador no tiene instalado .NET Framework, ¿Qué ocurrirá? ¿Se llegará a abrir el formulario?
  • 2) ¿Es posible que entre una versión del framework y otra, cambien las DLL? ¿Algún método de asegurarse de que un ordenador tiene instalada la versión adecuada?
  • 3) ¿Existe alguna manera de empaquetar librerías DLL externas en un ejecutable?

Gracias por las respuestas (si las hay e.e) :3


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Unas dudas sobre .NET
« Respuesta #1 en: 11 Noviembre 2014, 22:27 pm »

Que tal!
1. Si mal no recuerdo sí afecta, por ejemplo, en la versión 2012 (creo que es el framework 4 o superior) y tenia en el servidor un el framework 3.5, no podia ejecutar mi aplicación. Pero dentro de un archivo que tiene (creo que config.app), se puede cambiar al framework que tiene la maquina, es decir, 3.5.

2. No tengo idea,

3. Creería que creando el instalador

-Espera a que alguien con más experiencia en el campo te aclare bien las dudas-


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Unas dudas sobre .NET
« Respuesta #2 en: 11 Noviembre 2014, 22:51 pm »

Gracias por responder :p

La pregunta 3 era más que nadapara no andarme con rollos de carpetas y tal, para tener sólo 1 ejecutable. Pero vamos, no me urge expecialmente.

En cuanto a lo demás, era porque le di una aplicación en C# a una persona, y la pudo ejecutar, pero no se le cargaron algunas librerías (System.NET.http entre ellas, creo).

Me pareció curioso que no se le cargase la librería, pero que el formulario le arrancase perfectamente. Así que supongo que será no cosa de tener o no instalado el framework, sinó de la versión.

Pero bueno, sigo escuchando respuestas :D
En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: Unas dudas sobre .NET
« Respuesta #3 en: 11 Noviembre 2014, 23:50 pm »

Hola a todos, tengo unas preguntas sobre .NET (VisualStudio 2012, C#, formulario)

  • 1) Si un ordenador no tiene instalado .NET Framework, ¿Qué ocurrirá? ¿Se llegará a abrir el formulario?
  • 2) ¿Es posible que entre una versión del framework y otra, cambien las DLL? ¿Algún método de asegurarse de que un ordenador tiene instalada la versión adecuada?
  • 3) ¿Existe alguna manera de empaquetar librerías DLL externas en un ejecutable?

1. Todos los Windows 7 trae por defecto el .NET Framework en su version 3.5 y Windows 8/8.1 el 4.5 y el 3.5 es ocional, se podrá instalar en "Agregar o quitar componentes". Si la versión del framework que tu app requiere no está instalada en el sistema, entonces, se mostrará una notificación de error. Yo recomiendo utilizar la versión 3.5.
2. Todos los .NET Framework tienen su propio directorio, así que el conflicto del que hablas es imposible que suceda.
3. Sí. Busca sobre "Resources" en .NET ya que el Framework trae clases para embeber archivos.

En la ruta "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework" salen los directorios de las instalaciones del framework.

Saludos!
« Última modificación: 11 Noviembre 2014, 23:55 pm por kub0x » En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: Unas dudas sobre .NET
« Respuesta #4 en: 12 Noviembre 2014, 11:50 am »

Si un ordenador no tiene instalado .NET Framework, ¿Qué ocurrirá? ¿Se llegará a abrir el formulario?

Lo que ocurrirá es que te saldrá un msgbox de Windows advirtiéndote de que la versión de .NetFW requerida por la aplicación en cuestión no está instalada en tu equipo, y por lo tanto no se podrá iniciar, ni mucho menos se llegará a abrir el form principal.



El mensaje varía según la versión de Windows que se utilice, en Win7 si no recuerdo mal no te sale nada para descargar la versión requerida, y en XP directamente te sale un error de aplicación no válida sin información sobre el error.

La versión 3.5 de .NetFW es la versión recomendada de forma general al ser la más común en cualquier equipo, pero obviamente si usas la 3.5 no podrás usar las "nuevas" características de la librería de classes de las versiones 4.0, 4.5, 4.5.1 y 4.5.2


What's New in the .NET Framework 4
What's New in the .NET Framework 4.5, 4.5.1, and 4.5.2

PD: Sinceramente, en mi humilde opinión personal utiliar la versión 3.5 a estas alturas... es seguir estancado en el pasado sin ningún motivo coherente, a menos que seas una compañía y tu única alternativa sea utilizar la versión 3.5 por motivos de compatibilidad en múltiples PC's o por lo que sea, como última opción.





¿Es posible que entre una versión del framework y otra, cambien las DLL? ¿Algún método de asegurarse de que un ordenador tiene instalada la versión adecuada?

Por supuesto, se van actualizando y agregando nuevas funciones y otras quedan obsoletas/eliminadas, pero cada versión de .NetFW instalada en el equipo expande sus propias dll's, es decir, una versión nueva no reemplaza las dll de versiones anteriores, así que mientras tu aplicación use un .NetFW objetivo que esté instalado en el equipo no habrá problema alguno.

Lo correcto es distribuir junto tu software o al menos indicar la versión de .Net Framework Runtimes que necesita tu aplicación para iniciarse, y proveer el paquete por separado (el instalador online no pesa ni 1 mb), o un link de descarga oficial, en fin, lo que sea, pero algo útil para el end-user.

De todas formas sí que puedes averiguar que versiones de .Net Framework están instaladas en el equipo, en tiempo de ejecución, pero ten en cuenta que la solución propuesta por el compañero KuBox no te servirá en todos los casos, por ejemplo en versiones de Windows que vengan sin .Net framework (Ej: Windows XP y todas sus versiones anteriores, al no existir dicha carpeta) o por ejemplo en Win XP con SP2 con .NetFW 2.0 instalado (aunque en este caso no se el motivo específico, pero a mi no me sale), así que otra alternativa más global es observando el registro de Windows ya que practicamente todo se almacena en el registro de Windows:

Framework Version    Registry Key
1.0    HKLM\Software\Microsoft\.NETFramework\Policy\v1.0\3705
1.1    HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322\Install
2.0    HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727\Install
3.0    HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup\InstallSuccess
3.5    HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5\Install

Y obviamente puedes utilizar cómodas herramientas/librerías de terceros para facilitarte la tarea.


Using managed code to detect what .NET Framework versions and service packs are installed
(en los comentarios tienes actualizaciones del source compatible con .NetFW 4.0/4.5, yo lo uso sin problemas)

+
Librería de Snippets !! (Posteen aquí sus snippets)
Telerik Online converter





¿Existe alguna manera de empaquetar librerías DLL externas en un ejecutable?

Puedes embedir diréctamente una dll desde la IDE de VS, o puedes embedirlas usando aplicaciones d eterceros que te faciliten la tarea.

Existe casi una infinidad de herramientas para dicha tarea, te recomiendo la aplicación Smartassembly de RedGate como solución profesional puesto que proporciona características únicas, pero si quieres algo más simple puedes utilizar .Net Shrink (de pago), o IlMerge + ILMerge GUI (gratis)


SMartassembly
.Net Shrink
ILMerge
ILMerge GUI

No te vendría mal pasarte por aquí ;)
VisualStudio 2013 U. (Instalador+Plantillas+Snippets+Libs+Controles+Tools)
(aunque algunas versiones tienen ya un tiempo y siempre tengo la versión más nueva de cada aplicación, pero bueno, te servirán igualmente)





Citar
le di una aplicación en C# a una persona, y la pudo ejecutar, pero no se le cargaron algunas librerías (System.NET.http entre ellas, creo).

El namespace System.NET.Http solo está disponible a partir de .NetFW 4.5, está información está incluida en uno de los enlaces que te mostré anteriormente:
Networking

The .NET Framework 4.5 provides a new programming interface for HTTP applications. For more information, see the new System.Net.Http and System.Net.Http.Headers namespaces.

Por lo tanto deduzco que tienes .NetFW 4.5 o superior como objetivo en tu proyecto de C#, y el usuario tiene FW 4.0

Saludos.
« Última modificación: 12 Noviembre 2014, 15:12 pm por Eleкtro » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Unas dudas sobre .NET
« Respuesta #5 en: 12 Noviembre 2014, 15:05 pm »

Thanks Kub0x && Elektro :D

Creo que dejaré un poco de lado de momento el tema de averiguar la versión, y simplemente recomendaré a quien le de el programa que instale .NET Framweork 4.5 xD

El tema de embeber las DLL lo veré más adelante. Había utilizado ILMerge con error como resultado, y me dejó mal sabor de boca xD


Edito: He usado tu ILMerge GUI (de tu post), Elektro, y me ha funcionado. (Al seleccionar .NET Framework v4.0 Full me ha tirado una excepcion, pero al seleccionar "Client" ha ido bien)


Con eso listo, doy el tema por concluido. Gracias a todos.
« Última modificación: 12 Noviembre 2014, 15:16 pm por ivancea96 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
unas dudas sobre las apis
Programación General
Arconte 0 1,538 Último mensaje 16 Diciembre 2011, 02:02 am
por Arconte
Unas dudas sobre protocolo TCI/IP
Redes
Mario Olivera 6 4,771 Último mensaje 11 Julio 2014, 01:19 am
por Mario Olivera
unas dudas sobre programación y ejecutables de android
Foro Libre
exterminador96 0 1,602 Último mensaje 14 Mayo 2016, 22:17 pm
por exterminador96
¿Me pueden explicar unas dudas sobre ReadProcessMemory?
Programación C/C++
otroWeyMas.nasm 3 3,383 Último mensaje 23 Enero 2022, 18:02 pm
por Eternal Idol
Unas dudas sobre Word.
Software
Tachikomaia 1 2,179 Último mensaje 1 Octubre 2022, 22:42 pm
por RicRed
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines