LibGit2Sharp.NameConflictException“文件名或扩展名太长。”
问题描述:
我想使用Repository.Clone克隆git仓库。LibGit2Sharp.NameConflictException“文件名或扩展名太长。”
下面是用于克隆命令的示例代码片段。
public string Clone(string remoteRepository, string path, string username, string password)
{
string myPassword;
CloneOptions options = new CloneOptions();
options.CredentialsProvider = (url, user, cred) =>
{
return new UsernamePasswordCredentials {Username = username, Password = password};
};
return Repository.Clone(remoteRepository, path, options);
}
代码工作的一些仓库不错,但其他的我得到的异常
下面是我得到
{“无法统计文件‘剪断’例外:文件名或扩展名太长。\ r \ n“}
”剪切“路径全部为270个字符长。所以我知道这是对旧MAX_PATH规则的破坏。
根据一些windows文档,您可以使用unicode路径,将\?\添加到路径的开始位置,这将允许长路径与Windows API调用一起使用。但是这对于LibGit2Sharp不起作用。
有没有办法提供设置到LibGit2Sharp允许它使用长路径?或者失败了,是否有一个可以允许这种行为的替代nuget包?
答
将此添加到App.manifest这将允许长路径。我试过用/?//
和unc
都没有太大的帮助。但是这工作。
<windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</windowsSettings>
这不适合我。 –
这是一个单独的DLL吗?那么你需要修改DLL。 – Prajwal