none
No copia al compilar. Error. RRS feed

  • Pregunta

  • Hola:

    Tengo varios errores y este es uno de ellos. El programa no me compila. Antes si lo hacía sin modificar código alguno.

    ¿Qué puede ser?

    Dejo error.

    Gravedad    Código    Descripción    Proyecto    Archivo    Línea    Origen    Estado suprimido
    Error        No se puede copiar "obj\Debug\Introducir_datos_puerto_serie_consola_02.exe" en "bin\Debug\Introducir_datos_puerto_serie_consola_02.exe". El proceso no puede obtener acceso al archivo 'bin\Debug\Introducir_datos_puerto_serie_consola_02.exe' porque está siendo utilizado en otro proceso.    Introducir_datos_puerto_serie_consola_02            Compilación    

    Gravedad    Código    Descripción    Proyecto    Archivo    Línea    Origen    Estado suprimido
    Advertencia        No se pudo copiar "obj\Debug\Introducir_datos_puerto_serie_consola_02.exe" en "bin\Debug\Introducir_datos_puerto_serie_consola_02.exe". Se iniciará el reintento 5 dentro de 1000ms. El proceso no puede obtener acceso al archivo 'bin\Debug\Introducir_datos_puerto_serie_consola_02.exe' porque está siendo utilizado en otro proceso. El archivo se ha bloqueado por: "Introducir_datos_puerto_serie_consola_02.exe (3680)"    Introducir_datos_puerto_serie_consola_02            Compilación    

    Código C#:

    using System;
    using System.IO.Ports;
    using System.Threading;
    
    namespace Introducir_datos_puerto_serie_consola_02
    {
        class Program
        {
            static bool _continue;
            // Cree un nuevo objeto SerialPort con la configuración predeterminada.
            static SerialPort Puerto_serie = new SerialPort("COM1");
    
            static void Main(string[] args)
            {
                string nombre;
                string mensaje;
                StringComparer comparaString = StringComparer.OrdinalIgnoreCase;
                Thread readThread = new Thread(Leer);
    
                // Título de la ventana.
                Console.Title = "Enviar datos al puerto serie";
    
                // Tamaño de la ventana, x, y.
                Console.SetWindowSize(70, 25);
    
                // Color de fondo.
                Console.BackgroundColor = ConsoleColor.Blue;
    
                // Color de las letras.
                Console.ForegroundColor = ConsoleColor.Yellow;
    
                // Limpiar pantalla y dejarlo todo gris.
                Console.Clear();
    
                // Visible el cursor.
                Console.CursorVisible = true;
    
                Puerto_serie.BaudRate = 115200;
                Puerto_serie.Parity = Parity.None;
                Puerto_serie.StopBits = StopBits.One;
                Puerto_serie.DataBits = 8;
                Puerto_serie.Handshake = Handshake.None;
                Puerto_serie.RtsEnable = true;
    
                // Establecer los tiempos de espera de lectura / escritura.
                Puerto_serie.ReadTimeout = 500; // 500 // Milisegundos.
                Puerto_serie.WriteTimeout = 500; // 500
    
                // Abrir puerto serie.
                Puerto_serie.Open();
                _continue = true;
                readThread.Start();
    
                // Mostrar texto Nombre y se
                Console.Write("Nombre: ");
    
                // guarda en la variable nombre.
                nombre = Console.ReadLine();
    
                Console.WriteLine("Escriba salir para salir");
    
                while (_continue)
                {
                    // Cualquier caracter recibido se guarda en la variable mensaje.
                    mensaje = Console.ReadLine();
    
                    // Compara salir con el mensaje salir si lo haz escrito igual.
                    // ¿Escribiste la palabra salir?
                    if (comparaString.Equals("salir", mensaje))
                    {
                        // Sí. Entonces, pone esta variable _continue en false.
                        _continue = false;
                    }
                    // No. Entonces, envía por el puerto serie tu nick
                    // y mensaje que haz escrito.
                    else
                    {
                        Puerto_serie.WriteLine(
                            String.Format("<{0}>: {1}", nombre, mensaje));
                    }
                }
    
                // Bloquea el subproceso.
                readThread.Join();
    
                // Cierra el puerto serie.
                Puerto_serie.Close();
    
            }
    
            // Lee mensaje recibido.
            public static void Leer()
            {
                // Si _continue es true se ejecuta todas las instrucciones dentro de while.
                while (_continue)
                {
                    try
                    {
                        // Almacena en la variable mensaje cualquier caracter o mensaje recibido.
                        string mensaje = Puerto_serie.ReadLine();
    
                        // Muestra en pantalla mensaje recibido.
                        Console.WriteLine(mensaje);
                    }
                    catch (TimeoutException) { }
                }
            }
        }
    }


    http://electronica-pic.blogspot.com

    martes, 1 de diciembre de 2020 19:54

Respuestas

  • No es problema de código. El mensaje de error lo que significa es que el ejecutable del programa todavía está ejecutándose, seguramente porque lo ejecutaste antes y se quedó "colgado". Puede estar el ejecutable todavía en memoria incluso aunque no esté presentando ninguna ventana visible en pantalla. Al estar ejecutándose, el compilador no puede sobrescribir el fichero ejecutable. El remedio es buscar el programa con el Administrador de Tareas y pararlo desde ahí.
    • Marcado como respuesta Metaconta martes, 1 de diciembre de 2020 21:49
    martes, 1 de diciembre de 2020 21:23
    Moderador

Todas las respuestas

  • No es problema de código. El mensaje de error lo que significa es que el ejecutable del programa todavía está ejecutándose, seguramente porque lo ejecutaste antes y se quedó "colgado". Puede estar el ejecutable todavía en memoria incluso aunque no esté presentando ninguna ventana visible en pantalla. Al estar ejecutándose, el compilador no puede sobrescribir el fichero ejecutable. El remedio es buscar el programa con el Administrador de Tareas y pararlo desde ahí.
    • Marcado como respuesta Metaconta martes, 1 de diciembre de 2020 21:49
    martes, 1 de diciembre de 2020 21:23
    Moderador
  • Hola,

     

    gracias por confirmar que encontraste una respuesta a tu pregunta.

     

    Saludos cordiales

     

    Gabriel Castro

    martes, 1 de diciembre de 2020 22:34
    Moderador