Atenuação: Verificações de dois pontos de caminho
Começando com aplicativos destinados ao .NET Framework 4.6.2, várias alterações foram feitas para oferecer suporte a caminhos sem suporte anteriormente (tanto em termos de comprimento quanto de formato). Em particular, as verificações para a sintaxe adequada do separador de unidade (os dois pontos) foram feitas mais corretas.
Impacto
Essas alterações bloqueiam alguns caminhos de URI e os Path.GetDirectoryNamePath.GetPathRoot métodos suportados anteriormente.
Mitigação
Para contornar o problema de um caminho anteriormente aceitável que não é mais suportado pelos métodos andPath.GetPathRoot, você pode fazer o Path.GetDirectoryName seguinte:
Remova manualmente o esquema de um URL. Por exemplo, remova
file://
de um URL.Passe o URI para um Uri construtor e recupere o valor da Uri.LocalPath propriedade.
Desative a normalização do novo caminho definindo a
Switch.System.IO.UseLegacyPathHandling
AppContext opção comotrue
.<runtime> <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" /> </runtime>