
Научился: Было весело. Повторять за всеми не буду. Напишу только какие проблемы могут быть у тех, кто начал этот курс на Net версии 6 и выше. У меня стоит Net7 ну и 11 окна. :)
По видео уроку указал время в первом вопросе...
1. 19:58 переименование проекта на последней Visual22 ver. 17.14, приводит к краху проекта. После этого восстановить его не получилось...
Три раза пробовал на разных этапах, начиная с самого начала и сразу после создания формы. В этом случае все переименовывается, но после компиляции происходит пустой старт формы
с name Form1 и дальнейшие манипуляции с элементами формы и ей самой сохраняются, но не отображаются на откомпилированной форме. Не когда искать причину этого бага или того, что
еще надо сделать в проекте, чтобы все работало нормально.
2. Просто так, в версии NET6 и выше, как я понял Process.Start не запускает связанное с файлом приложение и код в ролике: Process.Start("https://www.google.ru"); приведет к ошибке:
System.ComponentModel.Win32Exception: 'An error occurred trying to start process 'https://www.google.ru' with working directory 'C:\Users\Debugger\Documents\PassWord\PassWord\bin\Debug\net7.0-windows'. Не удается найти указанный файл.
Так, как существуют некоторые отличия класса Process от .NET Framework.
Process.Start позволяет запускать приложение напрямую, например, с помощью такого кода, как Process.Start("mspaint.exe"), который запускает Paint. Это также позволяет косвенно запускать связанное приложение, если для параметра ProcessStartInfo.UseShellExecute задано значение true. В .NET Framework значение по умолчанию для ProcessStartInfo.UseShellExecute равно true,
это означает, что такой код, как Process.Start("mytextfile.txt"), запустит Блокнот, если вы связали файлы .txt с этим редактором. Чтобы предотвратить непрямой запуск приложения в .NET Framework, необходимо явно задать для ProcessStartInfo.UseShellExecute значение false. В .NET Core значение по умолчанию для ProcessStartInfo.UseShellExecute — false. Это значит, что
, по умолчанию связанные приложения не запускаются при вызове Process.Start.
Поэтому начиная с версии Net 6 надо UseShellExecute = true выставлять программно через создание нового объекта new ProcessStartInfo.
В итоге получаем такую конструкцию:
a) c прямой ссылкой 'Process.Start(new ProcessStartInfo{ FileName = "https://www.google.ru", UseShellExecute = true });
б) Через атрибут Tag Process.Start(new ProcessStartInfo { FileName = ((string)llSyte1.Tag), UseShellExecute = true }); - соответственно.
Трудности: Было не сложно, ибо гугл все знает, но над проектами сижу наскоками, в свободное время. Иногда приходится отвлекаться, а таймер тикает. :)