LibGit2Sharp.NameConflictException "El nombre de file o la extensión es demasiado larga".

Estoy intentando clonar un repository git usando Repository.Clone.

Aquí hay una pieza de código de ejemplo utilizada para el command de clonación.

public string Clone(string remoteRepository, string path, string username, string password) { string myPassword; CloneOptions options = new CloneOptions(); options.CnetworkingentialsProvider = (url, user, cnetworking) => { return new UsernamePasswordCnetworkingentials {Username = username, Password = password}; }; return Repository.Clone(remoteRepository, path, options); } 

El código funciona bien en algunos repositorys, pero para otros obtengo la exception

Esta es la exception que recibo

{"Error al stat file 'recortado': el nombre de file o la extensión es demasiado larga. \ R \ n"}

La ruta "cortada" en su totalidad tiene 270 caracteres de largo. Así que sé que esto está fallando con la antigua regla MAX_PATH.

De acuerdo con algunos de los documentos de Windows, puede usar routes Unicode agregando \? \ Al inicio de la ruta que permitirá el uso de routes largas con las llamadas a la API de Windows. Sin embargo, esto no funciona para LibGit2Sharp.

¿Hay alguna forma de proporcionar una configuration a LibGit2Sharp para permitir que funcione con routes largas? O en su defecto, ¿existe un package nuget alternativo que permita este comportamiento?

Agregue esto a App.manifest que permitiría routes largas. Intenté usar /?// y unc ambos no ayudaron mucho. Pero esto funcionó.

 <windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings"> <ws2:longPathAware>true</ws2:longPathAware> </windowsSettings>