• Lunes 18 de Noviembre de 2024, 02:42

Autor Tema:  MonoDevelop, y la portabilidad de sus aplicaciones!!  (Leído 2146 veces)

Dev_NIX

  • Nuevo Miembro
  • *
  • Mensajes: 6
  • Nacionalidad: es
  • ¡Deja de comerte la masa de las croquetas!
    • Ver Perfil
    • Dadme algún motivo para escribir
MonoDevelop, y la portabilidad de sus aplicaciones!!
« en: Lunes 17 de Octubre de 2011, 08:10 »
0
Buenas!!

Llevo un par de días iniciándome en las aplicaciones de escritorio con C#. Como me interesaba hacerlo todo multiplataforma, decidí tirar de Mono y GTK#, y la verdad es que estoy contento con los resultados :D

Mi problema es el siguiente:

Si compilo una aplicación tanto en ubuntu como en windows xp, el mismo ejecutable funciona sin problemas. Para probar, mandé el ejecutable a un par de colegas con windows 7, pero al parecer les suelta un error, y se cierra (sin llegar a mostrar la main window).

Lo extraño es que todos tenemos .NET instalado. ¿Serán movidas raras de arquitectura (y debo compilar en windows 7 para que funcione ahí), o es que tal vez necesiten algunas DLL en concreto por el tema de GTK#?

A lo mejor es una pregunta estúpida, pero soy nuevo en estos temas y aún me parece un poco raro esto, soy de esos bichos raros que vienen de C/C++  :nosweat:

Bueno, saludos para todos, que este es mi primer post y esas cosas, espero poder seguir escribiendo tanto en este foro como en MonoDevelop, un saludo!!!

EDIT: Luego os pregunto una cosa facilona de leer ficherillos ^^
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
« última modificación: Lunes 17 de Octubre de 2011, 12:07 por Dev_NIX »

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:MonoDevelop, y la portabilidad de sus aplicaciones!!
« Respuesta #1 en: Lunes 17 de Octubre de 2011, 16:30 »
0
la primera pregunta es... ¿Utilizaste el try catch?.... si tú respuesta es SÍ pasa a la siguiente pregunta. xD ...

¿Tienen instalado la misma versión del NET FrameWork?... si tú respuesta es SÍ pasa a la siguiente pregunta...

¿El SO de tus amigos es de 64 bits? .... si es así, entonces tienes que configurar tú aplicación a 32 bits para que  al instalarlo en Windows 7 de 64 Bits lo trate como un programa de 32 y no de 64 ... ( obvio, esto sí tus aplicaciones son para SO de 32 Bits ).

Espero te ayude.. saludos. :)
@gabio87

Dev_NIX

  • Nuevo Miembro
  • *
  • Mensajes: 6
  • Nacionalidad: es
  • ¡Deja de comerte la masa de las croquetas!
    • Ver Perfil
    • Dadme algún motivo para escribir
Re:MonoDevelop, y la portabilidad de sus aplicaciones!!
« Respuesta #2 en: Lunes 17 de Octubre de 2011, 16:33 »
0
Si que ayuda, si XD

Miraré lo del try catch, pero ya te digo que no muestra ni la ventana principal xDDD

Ya miraré esta noche el tema de arquitectura y versiones, aunque dudo que sea eso...

¡Ya contestaré, muchas gracias!

Dev_NIX

  • Nuevo Miembro
  • *
  • Mensajes: 6
  • Nacionalidad: es
  • ¡Deja de comerte la masa de las croquetas!
    • Ver Perfil
    • Dadme algún motivo para escribir
Re:MonoDevelop, y la portabilidad de sus aplicaciones!!
« Respuesta #3 en: Martes 18 de Octubre de 2011, 08:20 »
0
¡Solucionado! Creo que era cosa de DLLs.

Por cierto, lo que estoy probando ahora mismo es a abrir un fichero de texto, y poner los contenidos en un Text View (luego me ocuparé de cosas como guardar cambios, historial, etc).

Cuando abro un archivo, todo perfecto excepto por un detalle: al final del txt abierto, me imprime un salto de línea de más en el Text View.

Me preguntaba si podría ser la forma de abrir el archivo, si es una movida de saltos de linea, o qué. He aquí el código que uso para abrir un fichero e imprimirlo
Código: C#
  1. protected virtual void open_file (object sender, System.EventArgs e)
  2.         {
  3.         Gtk.FileChooserDialog fc = new Gtk.FileChooserDialog(
  4.                 "Elija el archivo a abrir",
  5.                 this,
  6.                 FileChooserAction.Open,
  7.                 "Cancelar",ResponseType.Cancel,
  8.                 "Abrir",ResponseType.Accept
  9.         );
  10.                
  11.                 if (fc.Run() == (int)ResponseType.Accept){
  12.                         System.IO.StreamReader file = new System.IO.StreamReader(fc.Filename);
  13.                        
  14.                         this.textview1.Buffer.Text = file.ReadToEnd();
  15.                         file.Close();
  16.                 }
  17.                
  18.                 fc.Destroy();
  19.         }