none
Problema al ejecutar un programa en otro PC (librerías) RRS feed

  • Pregunta

  • Voy a intentar explicar esto de la forma más fácil posible, partiendo de que no entiendo mucho de Visual Studio.

    He creado un proyecto Windows Form en C# que me gustaría poder ejecutar en otro ordenador. El problema es que este programa utiliza unas librerías (no sé si es el nombre correcto) que descargué de Code Project denominadas AGauge. Con esta librería pude añadir elementos al proyecto que consistían en una simple válvula que indica el valor de una variable gráficamente. El problema es que al ejecutar el archivo .exe del proyecto en otro PC, la válvula se dispara al valor máximo independienemente del valor de la variable.

    He pensado que esto puede ser debido a que en el otro PC no está descargada la librería, pero no sé si es por esto o por otro motivo.

    Puedo pasar enlace a la página Code Project pero no sé si está permitido hacerlo. Si alguien tuviese alguna idea de qué puede estar pasando se lo agradecería bastante.

    lunes, 23 de julio de 2018 10:26

Respuestas

  • en mi ordenador funciona sin problema y la aguja indica el valor correcto, pero cuando está en otro ordenador se dispara al valor máximo, por lo que error de programación no sé si es el caso

    Hay muchas razones por las que podría funcionar en un ordenador y no en el otro. Un ejemploÑ imagínate que en un ordenador tienes configurado desde el Panel de Control el formato numérico con "punto decimal" y que en el otro tienes el formato como "punto de miles". Suponte que envías a visualizar el valor "1.000", y lo pasas como String y le aplicas una conversión a número. Se convierte en un 1 en la primera máquina, y se convierte en 1000 en la segunda máquina. Si ese valor se lo pasas al Gauge, en el primer caso indicará un valor pequeño y en el siguiente se irá al tope.

    No digo que te esté pasando precisamente eso. Simplemente lo pongo como un ejemplo para indicar que el hecho de que funcione en una máquina no garantiza que funcione en la otra, debido a dependencias del entorno (en el ejemplo anterior, el formato numérico). Esto es un error de programación, aunque en la primera máquina funcione, porque se ha hecho una conversión implícita o explícita de cadena a número sin aplicar el formato correcto. Insisto en que no digo que en tu caso sea precisamente este, solo lo pongo como ejemplo de algo que arrojaría los síntomas indicados, pero pueden ser muchas más cosas.

    • Marcado como respuesta Fakiko miércoles, 25 de julio de 2018 18:40
    lunes, 23 de julio de 2018 15:05

Todas las respuestas

  • Si no estuviera copiada la libreria te daria un error en el momento de tratar de llamarla. Si solo se dispara al valor maximo, eso indicaria mas bien un error de programacion, que da lugar a que se calcule un valor incorrecto.

    No hay inconveniente en que pongas un enlace a CodeProject, o a cualquier otro sitio que resulte adecuado y relevante para una pregunta o respuesta.

    lunes, 23 de julio de 2018 11:27
  • Gracias por responder.

    El caso es que en mi ordenador funciona sin problema y la aguja indica el valor correcto, pero cuando está en otro ordenador se dispara al valor máximo, por lo que error de programación no sé si es el caso. Debo añadir que me he dado cuenta que si la variable vale 0 la aguja indica el valor 0, pero en cuanto el valor cambia ya la aguja indica el máximo.

    El enlace de Code Project es el siguiente: https://www.codeproject.com/Articles/448562/An-Improved-Version-of-AGauge-A-fast-and-performin

    lunes, 23 de julio de 2018 11:33
  • Hola:

    Para saber esto solo hay una solución y es la de prueba y error.

    O sea, instala la librería en otra PC en la que puedas probar la aplicación, si con esa librería instalada funciona bien la válvula, ahi tienes tu respuesta. Aunque como dice Alberto, me inclino mas por que sea mas un problema de programación que de librerias.

    Saludos

    lunes, 23 de julio de 2018 12:47
  • en mi ordenador funciona sin problema y la aguja indica el valor correcto, pero cuando está en otro ordenador se dispara al valor máximo, por lo que error de programación no sé si es el caso

    Hay muchas razones por las que podría funcionar en un ordenador y no en el otro. Un ejemploÑ imagínate que en un ordenador tienes configurado desde el Panel de Control el formato numérico con "punto decimal" y que en el otro tienes el formato como "punto de miles". Suponte que envías a visualizar el valor "1.000", y lo pasas como String y le aplicas una conversión a número. Se convierte en un 1 en la primera máquina, y se convierte en 1000 en la segunda máquina. Si ese valor se lo pasas al Gauge, en el primer caso indicará un valor pequeño y en el siguiente se irá al tope.

    No digo que te esté pasando precisamente eso. Simplemente lo pongo como un ejemplo para indicar que el hecho de que funcione en una máquina no garantiza que funcione en la otra, debido a dependencias del entorno (en el ejemplo anterior, el formato numérico). Esto es un error de programación, aunque en la primera máquina funcione, porque se ha hecho una conversión implícita o explícita de cadena a número sin aplicar el formato correcto. Insisto en que no digo que en tu caso sea precisamente este, solo lo pongo como ejemplo de algo que arrojaría los síntomas indicados, pero pueden ser muchas más cosas.

    • Marcado como respuesta Fakiko miércoles, 25 de julio de 2018 18:40
    lunes, 23 de julio de 2018 15:05
  • Gracias a ambos por las respuestas, ambos estabais en lo correcto. Había problemas al pasar de una variable a otra, me di cuenta al realizar programas más sencillos.

    ¡Gracias!

    miércoles, 25 de julio de 2018 18:41