Устранение рисков. Проверки двоеточий в путях
Начиная с приложений, ориентированных на .NET Framework 4.6.2, выполнен ряд изменений для поддержки ранее не поддерживаемых путей (с точки зрения и длины, и формата). В частности, усовершенствованы проверки правильности синтаксиса разделителя диска (двоеточия).
Воздействие
Эти изменения блокируют некоторые пути URI, которые ранее поддерживались методами Path.GetDirectoryName и Path.GetPathRoot.
Исправление
Чтобы обойти проблему с ранее допустимым путем, который больше не поддерживается методами Path.GetDirectoryName и Path.GetPathRoot, можно сделать следующее:
Вручную удалить схему из URL-адреса. Например, удалить
file://
из URL-адреса.передать код URI в конструктор Uri и получить значение свойства Uri.LocalPath;
отказаться от новой нормализации путей, установив для параметра
Switch.System.IO.UseLegacyPathHandling
AppContext значениеtrue
.<runtime> <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" /> </runtime>