SerialPort.GetPortNames () devuelve nombres de puerto incorrectos

Si bien c # no es mi lenguaje de programación principal, mantengo un programa de este tipo durante un par de años. Este programa se conecta a un dispositivo en un puerto serie y funciona desde Windows XP hasta 8.1. Una "característica" específica es que utiliza .NET Framework 2.0.

Con algunos usuarios que actualizan a Windows 10, tenemos quejas de que el programa no puede detectar / abrir el puerto COM del dispositivo. Hemos confirmado esto en nuestros propios sistemas de prueba con una instalación limpia de Win10.

Resulta que la función SerialPort.GetPortNames () devuelve nombres de puerto incorrectos y agrega caracteres 'extraños' después del nombre del puerto. Por ejemplo:

COM3 吀COM3 䡢COM3 ゠

Etc. Cuando actualizo la lista, cada vez que aparece otro personaje (o dos) después del número. El código de prueba es súper sencillo:

  string[] portNames = System.IO.Ports.SerialPort.GetPortNames();
  log("Available ports:");
  foreach (string PortAvailable in portNames)
  {
    log(PortAvailable);
  }

Donde la función de registro agrega de manera simple una línea a un cuadro de texto estándar en el formulario:

  txtLog.Text += Msg + Environment.NewLine;

Esto funciona en cualquier otra versión de Windows. He revisado el registro y todo se ve bien allí también. ¿Alguien tiene una idea sobre esto?

Sospecho que .NET Framework 2.0 ya no es 100% compatible, aunque puede habilitarlo en las características de Windows y parece que el programa en sí funciona bien (además de mi problema de puerto serie). Tengo un poco de miedo de actualizar a un .NET más nuevo, y mucho menos de que tenemos VisualStudio 2008 para c # (max = .NET 3.5). Tenga en cuenta que el programa todavía necesita ejecutarse en Windows XP también (Microsoft aún mantiene la versión POS).

AGREGADO: He "actualizado" un programa de prueba a .NET 3.5, y todavía tengo exactamente el mismo problema. El siguiente paso es instalar un nuevo VisualStudio (¿parece que es gratis hoy en día? ¿Debo verificar la configuración de privacidad en Studio también? ;-).

AÑADIDO 2: instalé VisualStudio 2015 e hice varias compilaciones con diferentes versiones de .NET Framework. v2.0 y 3.5 todavía agregan el extraño personaje. Pero en v4.0 y versiones posteriores, ¡este problema parece estar resuelto! Ahora para obtener el programa original compilado y funcionando para el Framework más nuevo. Pero encuentro este problema realmente extraño y esperaría que afectara más funciones .NET y más programas.

Respuestas a la pregunta(5)

Su respuesta a la pregunta