Хотя C# не является моим основным языком программирования, я поддерживаю такую программу уже пару лет. Эта программа подключается к устройству на последовательном порту и работает от Windows XP до версии 8.1. Одна конкретная «функция» заключается в том, что она использует .NET Framework 2.0.SerialPort.GetPortNames() возвращает неправильные имена портов
С некоторыми пользователями, обновляющимися до Windows 10, мы жалуемся, что программа не может обнаружить/открыть COM-порт устройства. Мы подтвердили это на наших собственных тестовых системах с чистой установкой Win10.
Оказалось, что функция SerialPort.GetPortNames() возвращает неправильные имена портов и добавляет «странные» символы после имени порта. Например:
- COM3 吀
- COM3 䡢
- COM3 ゠
Etc. Когда я обновить список, каждый раз, когда другой персонаж (или два) показывает вверх после номера. тест код супер прост:
string[] portNames = System.IO.Ports.SerialPort.GetPortNames();
log("Available ports:");
foreach (string PortAvailable in portNames)
{
log(PortAvailable);
}
Если логарифмическая функция mearly добавляет строку в стандартный TextBox на форме:
txtLog.Text += Msg + Environment.NewLine;
Это работает в любой другой версии Windows. Я проверил реестр, и все выглядит хорошо там. Есть ли у кого-нибудь идеи об этом?
Я подозреваю, что .NET Framework 2.0 на 100% не совместим, хотя вы можете включить его в функциях Windows, и кажется, что сама программа работает нормально (помимо проблемы с последовательным портом). Мне немного страшно обновляться до более новой .NET, не говоря уже о том, что у нас есть VisualStudio 2008 для C# (max = .NET 3.5). Обратите внимание, что программа все равно должна работать и в Windows XP (POS-версия по-прежнему поддерживается Microsoft).
ADDED: Я «обновил» тестовую программу до .NET 3.5 и по-прежнему имею точно такую же проблему. Следующий шаг - установить новый VisualStudio (кажется, что он свободен в настоящее время? Должен ли я проверить настройки конфиденциальности в Studio также? ;-).
ADDED 2: Установил VisualStudio 2015 и сделал несколько сборок с различными версиями .NET Framework. v2.0 и 3.5, все еще добавляя странный символ. Но в версии 4.0 и выше этот вопрос, похоже, будет решен! Теперь, чтобы исходная программа была скомпилирована и работала над новой Framework. Но я нахожу эту проблему очень странной и ожидаю, что это затронет больше функций .NET и больше программ.
Я думаю, что пришло время обновиться до .net 4 человека, действительно, это также время прекратить поддержку winxp, не быть той компанией, которая все еще работает win3.1 ....... force ваших клиентов, чтобы обновить, если они запускали 7? хорошо, но xp? Cегодня? Кроме того, вам не нужно их принуждать, просто установите установщик .net 4 с вашим следующим обновлением. –
Мы говорим о розничных продавцах, используя Windows XP POS, который по-прежнему поддерживается Microsoft. И текущее программное обеспечение некоторых, вероятно, даже не будет работать на новой версии Windows. Поскольку мы поставляем только небольшое дополнение к их системе, мы не можем никого принуждать :-(... Если MS поддерживает .NET 3.5 на Win10, тогда они должны исправить ошибки. – msoft
У вас есть точка здесь, но все же. я бы предложил инвестировать в команду, чтобы медленно обновлять ваше программное обеспечение до версии new.net. Не нужно спешить с ним. Но будьте готовы, когда придет время –