c# - 无法加载 DLL 'git2.dll' 找不到指定的模块

标签 c# visual-studio-2008 git libgit2 libgit2sharp

我正在尝试使用 libgit2sharp在网络项目中。问题是 libgit2sharp 的解决方案是针对 VS2010 而我使用的是 VS2008。所以我不得不创建一个新的解决方案并修改代码以不使用默认参数。这不是问题,除了当我尝试使用已编译的 libgit2sharp DLL 时出现标题中列出的异常。

我已经尝试在 git2.dll 中进行链接,但这没有帮助。将 git2.dll 复制到网络项目中也没有帮助。

编辑:该问题已在 LibGit2Sharp 问题跟踪器中得到解决:https://github.com/libgit2/libgit2sharp/issues/39

最佳答案

我没想到,git2.dll(C 的编译版本 libgit2)不在您的输出目录中 ( bin\[Release|Debug]).

由于 git2.dll 不是托管依赖项,因此您无法从项目中引用它。

但是,由于预构建事件,您应该能够将二进制文件复制到输出目录。

另一种选择是从您的解决方案中链接到 dll 文件并更改其属性以使其“如果较新则复制”(见下文)

enter image description here

如果您遇到任何问题,请在 bug tracker 中创建问题.

跟踪会更容易;-)

更新:

为了让它运行,您必须确保在编译后,文件 libgit2.dll 与程序集 LibGit2Sharp.dll 位于同一目录中.这样,程序集对 native 库的动态加载将按预期工作。

git2.dll(C libgit2 库的编译版本)应该在输出目录的顶层生成( bin\[Release|Debug]).

可以在 ticket 中找到更详尽的信息

关于c# - 无法加载 DLL 'git2.dll' 找不到指定的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6313203/

相关文章:

c# - 如何正确地为 XAML 中的数据绑定(bind)添加前缀(或后缀)?

c# - 如何更新 app.config.exe 文件运行时中的设置

c# - 我的 O/R Designer 一直在删除 designer.cs 文件!

git - 使用 Git 集成进行项目管理

ruby-on-rails - Sprockets::CircularDependencyError application.js 已经被要求

git - Jenkins "Error cloning remote repo ' 起源 '"and "无法分配内存”

c# - 如何检查是否已在 Blazor 中设置属性?

visual-studio-2008 - 如何更改MSBuild错误消息语言?

visual-studio-2008 - Visual Studio 2008 报表服务器项目设计 View 不工作

c# - Visual Studio 构建失败 : unable to copy exe-file from obj\debug to bin\debug