我尝试使用Repository.Clone克隆git存储库。
这是用于克隆命令的示例代码。
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包可以允许这种行为?
答案 0 :(得分:1)
将此添加到 App.manifest ,这将允许长路径。我尝试使用/?//
和unc
两者都没有帮助。但这很有效。
<windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</windowsSettings>