Wenas,
Mi pregunta iba más orientada a C#, pero el caso es el mismo para VB.Net,
No comprendo la idea de poder permitir "Copiar en local" las referencias. Por ejemplo "system.dll" si necesariamente necesita el framework.
En resumen, es posible hacer un link de las dll's necesarias con la aplicación para que no dependa de todo el framework?
Tal como es el caso de Visual C++, que es posible distribuir el runtime y todo funciona de maravilla, hay algo posible o parecido para C# o vb.net?
Si no me expliqué bien, preguntad :¬¬ (Ando durmiendo por el teclado)
SaluDOS!!!
No es posible :D
El .net framework es un conjunto de lenguajes, runtimes y compiladores ( y creo que algunas cositas mas) :P
no se si esto funcione...
http://foro.elhacker.net/net/tutorial_como_abrir_tu_aplicacion_net_sin_net_framework_instalado-t222613.0.html
Tienes que tomar en cuenta que las dependencias del Framework tienen depencias y a su vez estas tienen más dependencias. Si tú aplicación depende por ejemplo de System.Dll está puede depender de otra dll y esa de otra, hasta puede ser más de una. Si es posible correr "Sin NetFramwork" y lo pongo entré comillas porqué si copias todas las dependencias necesarias a donde está la aplicaión obvio que funcionara pero eso incluye Megas y Megas de archivos, no es aconsejable hacerlo.
Tengo que buscar, por aquí tengo un código que al pasarle un Assembly, obtiene todas las dependencias necesarias para iniciar la aplicación sin el NetFrameWork, y el peso aproximado del ejecutable, pero lo deje a medias, se supone que usaba un algoritmo para comprimir las dependencias dentro del assembly. Muy parecido a la respuesta de arriba.
Gracias por responder.
Es una aplicación de consola, no tiene muchas dependencias.
Lo que estaba intentando es hacer correr un "Hola Mundo!" escrito en C# (Para comenzar) en Windows XP sp3 en un Virtual, con la aplicación mencionada anteriormente genera un ejecutable de 3mb apróx., pero me interesa incluir las Dll's fuera y no dentro del ensamblado pero linkeados.
Por cierto, copié TODAS las dll's del .Net y no funcionó D: vaya a ser por que (O quizá me confundí y copié las de Mono ¬¬).
Espero tu respuesta sobre el código que tienes para obtener las dependencias. ;)
SaluDOS!
Como que 3MB? Si un "Hola Mundo" en sharp debe de pesar unos 5KB :huh:
[Edito]
Ahora veo que te referías a empaquetar el .NET con la aplicación que han mencionado antes.
Saludos
:P
Estuve leyendo un artículo en la MSDN:
/lib (Opciones del compilador de C#) (http://msdn.microsoft.com/es-es/library/s5bac5fx.aspx)
En específico, leer sobre "/Reference", aunque dudo que sirva (O quizá si).
No se como listar las dependencias de un ejecutable (Aparte de las que indica el Visual Studio), por ejemplo está "MsCorEE.dll" ..
Bueno, seguiré esperando D:
SaluDOS!
Un trozo de código que muestra como:
Dim [Assembly] As Assembly = Assembly.LoadFile("C:\Ejemplo.exe")
For Each Dll As AssemblyName In [Assembly].GetReferencedAssemblies
Console.WriteLine(Dll.Name & " " & Dll.Version.ToString)
Next
podes embeber las referencias de tu aplicacion como recurso dentro del .exe, eso se puede, y se cargan en memoria cuando se ejecuta y asi no necesitas llevarlas, obvio el tamaño del .exe crece segun el tamaño de la dll, hay un post mio donde pregunte y quedo la solucion de como hacerlo, es realmente util, si a veces tenes una dll y no la queres llevar, le aplicas este metodo y lo haces bien portable al .exe
lo que si las dll importantes del framework, eso ya no se puede, lo tenes que tener instalado si o si, aparte son como 200 megas de librerias.
saludos.
Cita de: Keyen Night en 6 Septiembre 2011, 02:25 AM
Un trozo de código que muestra como:
Dim [Assembly] As Assembly = Assembly.LoadFile("C:\Ejemplo.exe")
For Each Dll As AssemblyName In [Assembly].GetReferencedAssemblies
Console.WriteLine(Dll.Name & " " & Dll.Version.ToString)
Next
Solo me muestra MsCorEE (O era MsCord¿?) aún incluyendo la dll en el directorio junto con lo demás no funciona. D:
@seba123neo
Como podría embeber las referencias en la aplicación, lo he intentado pero no me funciona.
Por cierto, esto:
Portable Library Tools - VisualStudio MSDN (http://visualstudiogallery.msdn.microsoft.com/b0e0b5e9-e138-410b-ad10-00cb3caf4981/)
Alguien con "VS 2010 sp1" podría probarlo xD, ¿precisamente para que sirve? (No tengo el sp1, y son 512mb de descarga D:)
SaluDOS!
Ese código solo obtiene las depencias del Assembly pero no las dependencias de las mismas.
usa el buscador, cree un post hace unos meses de como hacerlo.
Cita de: seba123neo en 6 Septiembre 2011, 20:47 PM
usa el buscador, cree un post hace unos meses de como hacerlo.
Hace unos meses O.ô?
He leído (rápidamente) todos tus topics hasta mayo ("La materia que más os a costado" o algo por ahí era el último) y no encuentro nada referente al tema menos en el buscador (Que por cierto es lo primero que hice ¬¬)
es de hace un año ;D
[Solucionado] Cargar DLL a memoria (http://foro.elhacker.net/net/solucionado_cargar_dll_a_memoria-t304923.0.html)
cualquier duda preguntame, pero es facil, es mas uno de los ultimos aportes que hice, un buscador de mercadolibre usa este metodo.
saludos.
D:
Aunque me sirvió navegar el Google buscando tu topic, llegué a dar con un S.O escrito en C# (Compilado con IL2CPU o algo así).
Y encontré ese topic, pero sinceramente no entendí mucho, si fuese posible, como sería el procedimiento en VS10? (Después de usar Mono no entiendo el VS) :P
Si escribieron un S.O de menos de 2megas que entra en un discket en C# debe ser posible ejecutar un "Hola Mundo!!!" sin necesidad de tanta cosa. Supongo no.
SaluDOS!