Partilhar via


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.UseLegacyPathHandlingAppContext opção como true.

    <runtime>  
        <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=true" />
    </runtime>  
    

Consulte também