Error en la Pocket PC

30/06/2008 - 23:02 por Henry de Sousa | Informe spam
Hola programadores!

Bueno les cuento amigos.

Estoy desarrollando una aplicación para Pocket PC con Vs2008 y programando
con c#.
Mis pruebas las he estado realizando en el emulador que viene con el VS2008,
todo bien, nunca había tenido problemas.

Llegó el momento de probar la aplicación en la Pocket PC y bueno se cumplió
el dicho, en la máquina del desarrollador
todo corre.

La estoy probando en una iPAQ 211, sistema operativo Windows Mobile 6 Classic.
Instalo el Compact Framework 3.5 en la PPC para poder correr la aplicación,
el mismo lo ubico en el directorio
"C:\Archivos de
programa\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\NETCFv35.wm.armv4i.cab" en mi PC.

Bueno luego de instalado el framework instalo mi aplicación.

Al momento de correr mi aplicación en la PPC obtengo un error que no he
logrado descifrar que es. El error es el siguiente:


<QUOTE>
Aplicacion.exe
Exception

at
Microsoft.AGL.Common.MISC.HandleAr()
at
System.windows.Forms.TextBoxBase._SetInfo()
at
System.Windows.Forms.TextBox.set_Passwordchar
at
Aplicacion.Config.InitializeComponent()
at Aplicacion.Config..ctor()
at Aplicacion.Program.Main()
</QUOTE>


El error da cargando la aplicación, creo que está ocurriendo en el
consructor del formulario pero la verdad no sé que pueda
ser, no me explico como funciona en el emulaor y no funciona en la Pocket.

Lo más cruel es que he creado un nuevo proyecto en blanco, con un solo
formulario, el formulario no tiene nada, absolutamente
nada y sin embargo me da el mismo error, y justo en el constructor de la
clase, les detallo el error.

El error ocurre en el método InitializeComponent() que agrega el mismo
VS2008 y el cual es llamado desde el constructor
del formulario, en el método pueden ver el siguiente inofensivo código que
ha agregado el mismo VS:

private void InitializeComponent()
{
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.Menu = this.mainMenu1;
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Text = "Form1";
this.AutoScroll = true;
}

Como ven, nada extraño, con todo y eso me da el mismo error que ya les
comenté con mi aplicación, es algo asi:

<QUOTE>
Pruebas.exe
ObjectDisposedException

at
Microsoft.AGL.Common.MISC.HandleAr()
at
System.windows.Forms.MainMenu.CreateMainMenuTree()
at
System.windows.Forms.Form.set_Menu()
at Pruebas.Form1.InitializeComponent()
at Pruebas.Form1..ctor()
at Pruebas.Program.Main()
</QUOTE>


Definitivamente el error está ocurriendo en el método InitializeComponent()
que ha agregado el mismisimo VS cuando ejecuto
la aplicación en la Pocket PC.


Bueno disculpen por lo extenso.
Qué creen ustedes que pueda ser? Será que el sistema operativo no soporta
alguna funcionalidad?


Gracias por su tiempo.
Saludos.

Preguntas similare

Leer las respuestas

#1 Carmelo J. Morales Muñoz
01/07/2008 - 22:09 | Informe spam
hola!, me alegro que almenos la hayas podido instalar en tu PDA, te comento
solouna cosa mas. Yo en su día, me bajé una trial*emule* de Installshield,
no se si era 12 o 10. Me costó muuuucho trabajo crear un proyecto de
instalación para pocket pc, pero finalmente lo conseguí, instalaba todo,
incluso motor de base de datos para pda. Te lo comento por si quieres ir
investigando para el deploiment, ya que me parece que los instaladores de VS
son muy pobres. Actualmente no estoy haciendo nada para pda, asi que no
puedo ayudarme mucho.

Un saludo!
Respuesta Responder a este mensaje
#2 Alejandro Mezcua
02/07/2008 - 10:59 | Informe spam
Hola, Henry.

Para distribir la aplicación final a tus dispositivos tendrás que generar un
paquete de instalación .cab con tu aplicación. Esto lo puedes hacer
directamente con Visual Studio, creando un proyecto de instalación para
dispositivos. A continuación tendrás que distribuir la versión de .NET
Compact Framework que necesites a aquellos dispositivos que no la tengan
instalada. Desgraciadamente el proceso de instalación en Windows Mobile no
es igual que en Windows, donde se pueden meter varios instaladores en uno y
"anidarlos" de forma que tu instalador arranque, y, mientras está
funcionando, se espere, instale .NET Compact Framework, y luego continúe.
Eso sería lo ideal, pero no es posible tal cual funciona el proceso de
instalación en Windows Mobile.

Para conseguir una experiencia similar, hay gente que ha encontrado que es
posible crear una dll nativa (C/C++) que se incluya como parte de la
instalación y que lance un proceso separado que sea capaz de instalar .NET
Compact Framework, pero es una tarea un tanto manual, no está integrado en
el proceso normal de instalación de Windows Mobile, aunque de cara al
usuario la experiencia es casi transparente (lo puedes ver en ese link):

http://groups.google.ca/group/micro...aeb6bc7f1e

Por otro lado, hablas del .cab de recursos "Microsoft .Net CF 3.5 EN-String
Reso..." ese archivo contiene todos los mensajes de error de .NET Compact
Framework traducidos al idioma que sea, en el caso que pones está en inglés.
Ese cab sirve en teoría para que cuando en tu aplicación se produzca una
excepción tengas acceso al mensaje de error en el idioma correspondiente. De
todas formas tiene algunos problemas que están reflejados en el siguiente
link con una pequeña solución posible.

http://www.byteabyte.net/2008/06/04...ork35.aspx

Un saludo,

Alejandro Mezcua
MVP Device Application Development
http://www.byteabyte.net/

"Henry de Sousa" wrote in message
news:
Hola amigos.
Muchas gracias por sus respuestas.

Bueno he hecho lo que me has comentado Carmelo, he desarrollado la
aplicación directamente sobre el dispositivo, y ha andado perfecto.
Eso si, antes de desarrollar la aplicación en el dispositivo desde el
VS2008
lo primero que hice fue desinstalar el CF que ya había instalado
previamente
en la Pocket. Al ejecutar la aplicación desde el VS2008 sobre el
dispositivo
el mismo VS copió el CF a la Pocket.

Lo que si noté es que el VS también instaló en la Pocket algo llamado
"Microsoft .Net CF 3.5 EN-String Reso...", eso es lo que puedo ver cuando
voy
a la opción de remover programas en la Pocket, también noté que en el
emulador tienes eso instalado, así que al parecer eso es lo que me faltaba
instalar en la Pocket, ese extraño "Microsoft .Net CF 3.5 EN-String
Reso...".


Lo que me pregunto ahora y que investigaré un poco más luego que tenga
algo
más de tiempo es si ese es algún componente extra que necesito instalar
para
que una aplicación pueda correr, ya que lo ideal no sería desarrollar la
aplicación directamente desde el VS sino instalar lo necesario en cada una
de
las Pockets de los clientes, pero por ahora es lo que necesito para ir
probando la aplicación.

Muchas gracias amigos.

Saludos...
Respuesta Responder a este mensaje
#3 Henry de Sousa
02/07/2008 - 15:05 | Informe spam
Hola amigos.
Gracias por sus comentarios y ayuda.

Si, realmente es un poco tedioso el proceso de distribuir una aplicación
para pocket pero bueno por ahora tenemos que usar lo que tenemos.

Espero que este post pueda ayudar a otros que se encuentren con este
problema asi como me ha ayudado a mi.

Saludos y gracias nuevamente.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida