【发布时间】:2026-01-06 18:05:02
【问题描述】:
尝试使用 LibGit2Sharp v.0.18.1.0 克隆远程存储库会引发此异常:
LibGit2Sharp.LibGit2SharpException:映射失败。无效的句柄值:文件的卷已被外部更改,因此打开的文件不再有效。
在 LibGit2Sharp.Core.Ensure.HandleError(Int32 结果) 在 LibGit2Sharp.Core.Ensure.ZeroResult(Int32 结果) 在 LibGit2Sharp.Core.Proxy.git_clone(字符串 url,字符串工作目录,GitCloneOptions& opts) 在 LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, CloneOptions options)
使用相同的 url 和 workdir,我已经使用 Git Bash 和 SourceTree 成功地克隆了存储库。但对于我的任务,我需要以编程方式完成,而 LibGit2Sharp 似乎是一个不错的选择。
更新:不知何故错误发生了变化,现在我得到了大约 20KB 的远程存储库,然后出现了这个错误:
在 LibGit2Sharp.dll 中发生了“System.AccessViolationException”类型的第一次机会异常
附加信息:试图读取或写入受保护的内存。这通常表明其他内存已损坏。
更新 2:AccessViolationException 是由不同的原因引起的(尝试使用 emtpy 字符串作为远程 url 进行克隆!)
【问题讨论】:
-
请在 issue tracker 中提出问题。我们很乐意看看它。
-
@kayak58 在我存储在 Stash 中的存储库上运行 GitVersion 应用程序时,我面临的错误几乎与您完全相同。不幸的是,我的回购是私人的,我不能与公众分享。你的回购有可能是公开的吗?这样 LibGit2Sharp 的维护者也许可以看一看,看看发生了什么?
-
已创建问题:#794
-
@Gary:不幸的是,我也访问了 Stash 上的私人仓库,但我可能会说服所有者公开仓库进行测试。
-
@kayak58,如果可以的话,那就太好了。不幸的是,我没有那种奢侈 :-( 有趣的是我们都在运行 Stash。你使用的是哪个版本的 Stash?
标签: libgit2sharp