【问题标题】:Unable to load DLL 'git2.dll' The specified module could not be found无法加载 DLL 'git2.dll' 找不到指定的模块
【发布时间】:2011-06-11 00:15:52
【问题描述】:

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

我已尝试在 git2.dll 中进行链接,但这并没有帮助。将 git2.dll 复制到 web-project 也没有帮助。

编辑:问题已在 LibGit2Sharp 问题跟踪器中处理:https://github.com/libgit2/libgit2sharp/issues/39

【问题讨论】:

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


    【解决方案1】:

    在我的脑海中,我想说git2.dllC 的编译版本 libgit2)不在您的输出目录中 (bin\[Release|Debug])。 p>

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

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

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

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

    这样会更容易追踪 ;-)

    更新:

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

    git2.dllC 的编译版本 libgit2)应在您的输出目录 (bin\[Release|Debug]) 的顶级 生成。 p>

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

    【讨论】:

    • 好的,我打开了一张票,因为这没有帮助 - 我已经将它链接并复制到所有 bin/output 文件夹。
    • @Chuck Savage 确实将 git2.dll 从 Lib 文件夹中移出,并将其放在项目的顶层,解决了您的问题吗?
    • @nulltoken: +1 添加为链接是个好主意.. 之前正在编码预构建部分..
    • @nulltoken:我看到我们有两个二进制文件,一个在amd64 下,另一个在x86 下。我的应用程序是一个 Windows 32 位应用程序,可在 x86 和 64 位上运行(注册表:Wow6432Node 有帮助)。我应该将amd64 也添加到我的项目中吗?
    • @jacobaloysious:如果您的应用程序只有 32 位,请随意只部署本机 32 位 dll。它可以部署在托管程序集旁边,也可以部署在从中加载它的 Lib/NativeBinaries/x86 目录结构中。
    猜你喜欢
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多