LibGit2Sharp无法找到git2.dll

时间:2013-03-26 18:58:52

标签: c# visual-studio-2012 libgit2 libgit2sharp

我已经构建了一个小型的wpf应用程序来管理我正在处理的网站。这个应用程序的关键功能是它允许我签出主题存储库的不同分支。这在visual studio中完美运行,但是当我在Windows 8机器上发布,安装和运行应用程序时,它会回来:

{"Unable to load DLL 'git2': The specified module could not be found. (Exception from HRESULT: 0x8007007E)"}

我搜索了互联网和stackoverflow。有类似的问题,例如Unable to load DLL 'git2.dll' The specified module could not be found,但提供的答案(以及答案中描述的github问题中显示的答案)带来了另一个错误:

Unable to find an entry point git_reference_oid in git2.dll

我尝试安装最新的nuget,包括编译的dll并添加git2.dll,包括我的解决方案中的libgit2sharp项目。再次,当我通过visual studio运行它时,它完美地运行,但是当我发布,安装和运行它时失败了。

我不确定需要包含哪些信息,所以请随时发表评论并告诉我,以便我可以更新问题。

谢谢!

1 个答案:

答案 0 :(得分:2)

您运行已安装的可执行文件的计算机可能缺少MSVCR100.DLL或MSVCR110.DLL(取决于是否使用Visual Studio 2010或2012编译了git2.dll)。

最近在libgit2中合并了 fix ,这消除了对此依赖项的需求。

实际上,对这些二进制文件运行dumpbin /IMPORTS git2.dll不会再显示对MSVCR1x0.dll的依赖。

LibGit2Sharp项目的vNext分支的最新提示嵌入了那些更新的git2.dlls。建议编译项目(使用build.libgit2sharp.cmd工具并使用此版本(manged assembly + native binaries)。