SerialPort.GetPortNames () retorna nomes de porta incorretos

Embora o c # não seja minha linguagem de programação principal, estou mantendo esse programa há alguns anos. Este programa se conecta a um dispositivo em uma porta serial e funciona no Windows XP até 8.1. Um "recurso" específico é que ele usa o .NET Framework 2.0.

Com alguns usuários atualizando para o Windows 10, temos reclamações de que o programa não pode detectar / abrir a porta COM do dispositivo. Confirmamos isso em nossos próprios sistemas de teste com a instalação limpa do Win10.

Acontece que a função SerialPort.GetPortNames () retorna nomes de portas incorretos e adiciona caracteres "estranhos" após o nome da porta. Por exemplo:

COM3 吀COM3 䡢COM3 ゠

Etc. Quando atualizo a lista, toda vez que outro caractere (ou dois) aparece após o número. O código de teste é super direto:

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

Onde a função de log adiciona uma linha a um TextBox padrão no formulário:

  txtLog.Text += Msg + Environment.NewLine;

Isso funciona em todas as outras versões do Windows. Eu verifiquei o registro e tudo parece bem lá também. Alguém tem uma idéia sobre isso?

Suspeito que o .NET Framework 2.0 não seja mais 100% compatível, embora você possa habilitá-lo nos recursos do Windows e parece que o próprio programa funciona bem (além do meu problema de porta serial). Estou com um pouco de medo de atualizar para um .NET mais novo, sem falar no VisualStudio 2008 para c # (max = .NET 3.5). Observe que o programa ainda precisa ser executado no Windows XP também (a versão do POS ainda é mantida pela Microsoft).

ADICIONADO: "Atualizei" um programa de teste para o .NET 3.5 e ainda tenho exatamente o mesmo problema. O próximo passo é instalar um novo VisualStudio (parece que hoje em dia é grátis? Devo verificar também as configurações de privacidade no Studio? ;-).

ADICIONADO 2: Instalou o VisualStudio 2015 e fez várias compilações com diferentes versões do .NET Framework. v2.0 e 3.5 ainda adicionando o caractere estranho. Mas, na v4.0 e acima, esse problema parece estar resolvido! Agora, para compilar o programa original e trabalhar para o novo Framework. Mas acho esse problema realmente estranho e esperaria que isso atingisse mais funções .NET e mais programas.

questionAnswers(5)

yourAnswerToTheQuestion