none
Mi aplicacion no se ejecuta en otros equipos RRS feed

  • Pregunta

  • Hola, estoy desarrollando una aplicacion en Managed C++ 2005.net y mi principal problema es que no hay forma de ejecutarla en otros equipos ajenos al entorno de desarrollo, es decir, en sistema windows que no tenga el Visual Studio.NET no funciona, da igual que tenga el Framework 2.0 o 3.0 que la aplicacion no arranca.


    El mensaje de alerta que me sale es el siguiente:

    No se pudo iniciar la aplicacion porque su configuracion es incorrecta. Reinstalar la aplicacion puede solucionar el problema.

     

    Cosas que he tocado del compilador:

    Juego de caracteres: Utilizar juego de caracteres multibyte
    Compatibilidad con Common Language Runtime : Compatible con Common Language Runtime (/clr)

     

    Por supuesto la aplicacion que ejecuto es la generada en modo Release...


    Bueno, ¿alguien sabe del tema?


    Gracias

    domingo, 9 de diciembre de 2007 2:46

Todas las respuestas

  • Tengo el mismo error, ¿Lograste solucionarlo? ¿Cómo?

     

    lunes, 28 de abril de 2008 17:11
  • Me pasa lo mismo que a vosotros. He probado a instalar el framework 2.0 por si fuera eso, pero nada.
    El PC donde lo ejecuto tiene XP con service pack 1. También cambie la compatibilidad del Compatibilidad con Common Language Runtime : Compatible con Common Language Runtime (/clr) y nada

    en fin espero que lo hayais solucionado...ya me decis
    lunes, 5 de mayo de 2008 21:12
  • Aparte del .NET Framework, ¿empleas alguna otra librería, digamos MFC? ¿Utilizas alguna función del estándar de C++ (como cin, cout, etc)?
    jueves, 8 de mayo de 2008 22:15
  • Aparte del .NET Framework, ¿empleas alguna otra librería, digamos MFC? ¿Utilizas alguna función del estándar de C++ (como cin, cout, etc)? Si es así, asegúrense de distribuir las librerías correspondientes (la de MFC y la del C Language Runtime).
    jueves, 8 de mayo de 2008 22:16
  • Utilizo las librerías SQLITE y OPENCV, ya hice las referencias oportunas e incluyo el código (en teoría eso creo que está bien). El proyecto está basado en una aplicación de Windows Forms, aunque en un proyecto anterior que desarrollamos no me suena que tuvieramos problemas en este aspecto. Creia que el compilador (para el caso de cin, cout que comentabas) se encargaría de incluir las referencias al hacer el #include <iostream> como parte del proceso e instalar el .net framework  correspondiente se encargaría de que funcionara todo a la perfección en el resto de equipos. Seguiré investigando la parte de distribución a ver si fuera eso. Gracias.
    jueves, 8 de mayo de 2008 23:32
  • Sí, el compilador se encarga de referenciarlas, pero no de distribuirlas (a menos que enlaces de forma estática, nada recomendable). Entonces tendrías que distribuir a tu nueva máquina las librrías de SQLite y OpenCV, y MFC y CRT y todas las que tengas referenciadas. Librerías generales como MFC y CRT, es mejor que las pongas en la carpeta de sistema (\windows\system32), mientras que las otras las pongas en la misma carpeta de donde está tu ejecutable.

    Precísamente por eso es que se emplean los instaladores, para instalar el programa más las dependencias.

    Saludos.
    viernes, 9 de mayo de 2008 0:17
  • Bueno parece que ya he conseguido solucionar el problemilla (aunque ahora me enfrento a otro vaya lata juas juas)
    Al final utilicé un instalador de la aplicación y añadi unas dependencias.
    Os remito al lugar de donde saqué la información por si alguien se encontrara con el mismo problema sepa como solucionarlo.
    Otro Foro de Microsoft donde se explica Implementar un proyecto de instalación e implementación

    "en Dependencias detectadas deberá ver que Visual Studio detecta dependencias en MFC90.dll y MSVCR90.dll"
    Bueno a mi no me detectaba esas dependencias pero las incluí de todas maneras. Entre otras cosas puede que no me las reconociera porque ese es el caso de Visual Studio 2008 y yo estoy desarrollando la aplicación bajo Visual Studio 2005 y en lugar de incluir las referencias a Microsoft_VC90_DebugCRT_x86.msm y Microsoft_VC90_DebugMFC_x86.msm (en modo depuración) lo hice a Microsoft_VC80_DebugCRT_x86.msm y Microsoft_VC80_DebugMFC_x86.msm. En otro modo aunque las agregue me sigue dando el mismo error. Así que fijaros que hay versiones de depuración de estos módulos de combinación.

    Pero la verdad que no se si es una referencia estatica de las que "mal" hablabas o según la información parece que lo copia en la máquina destino, También existe otro procedimiento para implementar los archivos DLL de la biblioteca de Visual C++ como ensamblados privados pero que da problemas en un sistema operativo que no admita el enlace basado en manifiestos (Windows 2000). Parece ser que es un XML que administra los nombres y se encarga de enlazar con las diferentes versiones que la aplicación requiere en tiempo de ejecución, si mal no lo he entendido.

    No he encontrado otra solución.
    Bueno en mi caso no es necesaria la referencia a MFC porque es Windows Forms pero sí a CRT
    Espero que os funcione
    Gracias Fernando por tus respuestas

    martes, 13 de mayo de 2008 17:59