Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales
Autor
|
Tema: Es posible incluir solo las dependencias (Dlls) sin instalar todo el framework? (Leído 1,757 veces)
|
|
EddyW
|
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!!!
|
|
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.371
La sonrisa es la mejor forma de afrontar las cosas
|
No es posible  El .net framework es un conjunto de lenguajes, runtimes y compiladores ( y creo que algunas cositas mas) 
|
|
|
|
|
En línea
|
|
|
|
|
|
Keyen Night
Desconectado
Mensajes: 315
Nothing
|
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.
|
|
|
|
|
En línea
|
|
|
|
|
EddyW
|
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!
|
|
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Ex-Staff
Desconectado
Mensajes: 10.239
Yo que tu lo pienso dos veces
|
Como que 3MB? Si un "Hola Mundo" en sharp debe de pesar unos 5KB  [Edito]Ahora veo que te referías a empaquetar el .NET con la aplicación que han mencionado antes. Saludos
|
|
|
|
« Última modificación: 5 Septiembre 2011, 22:06 por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD http://twitter.com/novlucker "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
|
EddyW
|
 Estuve leyendo un artículo en la MSDN: /lib (Opciones del compilador de C#)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!
|
|
|
|
|
En línea
|
|
|
|
Keyen Night
Desconectado
Mensajes: 315
Nothing
|
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
|
|
|
|
|
En línea
|
|
|
|
|
seba123neo
|
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.
|
|
|
|
|
En línea
|
Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo. Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
|
|
|
|
EddyW
|
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) NextSolo 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 MSDNAlguien con "VS 2010 sp1" podría probarlo xD, ¿precisamente para que sirve? (No tengo el sp1, y son 512mb de descarga D:) SaluDOS!
|
|
|
|
|
En línea
|
|
|
|
Keyen Night
Desconectado
Mensajes: 315
Nothing
|
Ese código solo obtiene las depencias del Assembly pero no las dependencias de las mismas.
|
|
|
|
|
En línea
|
|
|
|
|
seba123neo
|
usa el buscador, cree un post hace unos meses de como hacerlo.
|
|
|
|
|
En línea
|
Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo. Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
|
|
|
|
EddyW
|
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 ¬¬)
|
|
|
|
|
En línea
|
|
|
|
|
seba123neo
|
es de hace un año [Solucionado] Cargar DLL a memoriacualquier duda preguntame, pero es facil, es mas uno de los ultimos aportes que hice, un buscador de mercadolibre usa este metodo. saludos.
|
|
|
|
|
En línea
|
Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo. Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
|
|
|
|
EddyW
|
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)  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!
|
|
|
|
|
En línea
|
|
|
|
|
|