【问题标题】:.Net Core VS2015, Unable to load DLL 'git2-785d8c4': The specified module could not be found. (Exception from HRESULT: 0x8007007E).Net Core VS2015,无法加载 DLL 'git2-785d8c4':找不到指定的模块。 (来自 HRESULT 的异常:0x8007007E)
【发布时间】:2016-07-04 16:42:12
【问题描述】:

我正在开发 .Net Core 并尝试将 >net 4.5 应用程序迁移到 .Net Core。在此过程中,我在尝试访问 git .dll 时发现以下错误

以下是我的 Project.json:

  "frameworks": {
    "net451": {
      "dependencies": {
        "Data": "1.0.0-*",
        "NLog": "4.3.5",
        "HtmlAgilityPack": "1.4.9",
        "LibGit2Sharp": "0.22.0",
        "RestSharp": "105.2.3",
        "Unofficial.Ionic.Zip": "1.9.1.8"
      }
    }

我在下面的代码行收到错误。

if (Repository.IsValid(basePath) == false)

包括命名空间:

using LibGit2Sharp;
using LibGit2Sharp.Handlers;

错误信息是:

无法加载 DLL 'git2-785d8c4':找不到指定的模块。 (HRESULT 异常:0x8007007E)

我想知道是否有任何其他方法可以让我在 .Net Core 中使用此功能。

【问题讨论】:

  • 您可以运行 fuslogvw 来确定它在哪里寻找该 dll。

标签: .net asp.net-core asp.net-core-mvc .net-core libgit2sharp


【解决方案1】:

更新:从 8 月 3 日的 LibGit2Sharp (LibGit2Sharp 0.23.0-pre20160803182831) 版本开始,LibGit2Sharp 现在支持常规 .NET 4.5 项目(使用基于 .csproj 的解决方案的项目)和新型 @基于 987654324@ 的解决方案(如 .NET Core 中引入的)。

请注意,LibGit2Sharp 仍然不支持 .NET Core,只支持新的项目结构。请参阅https://github.com/libgit2/libgit2sharp/pull/1318 了解更新。

【讨论】:

  • 他的目标是net451
  • @Pawel:“我正在开发 .Net Core 并试图将 >net 4.5 应用程序迁移到 .Net core”...我不明白什么?
  • @Pawel :我的目标是 net451,但在 .net 核心中。我的项目不包含 dll 或 bin 文件夹。有了这些限制,我需要使用 LibGit2Sharp。
  • @EdwardThomson - 他正在将 .NET 4.5 应用程序迁移到针对 net451 的 .NET Core 应用程序。
  • @SalmanTariqLone - 如果由于本机依赖项而这不起作用,您可以在发布后步骤中手动复制它们。
【解决方案2】:

LibGit2Sharp 包依赖于 LibGit2Sharp.NativeBinaries 包。由于那是一个native package,它使用一个 MSBuild 文件将本机库复制到输出目录。

.Net Core CLI 不使用 MSBuild,因此我相信它不支持基于 MSBuild 的本机包。

如果您想将 LibGit2Sharp 包与 .Net Core CLI 一起使用,我相信您将不得不等待:.Net Core CLI 的下一版本(计划于 2016 年秋季发布)将使用 MSBuild,因此它可能会刚刚开始在职的。或者,LibGit2Sharp 的作者将来可能会发布兼容的包。

【讨论】:

  • 您可以在 .NET Core 中使用具有本机依赖项的包。他们需要遵循特定的结构,但如果他们确实 cli 知道在您发布应用程序时要复制哪些位。我前段时间写了一篇文章:blog.3d-logic.com/2015/11/10/…。它谈论的是 dnx,现在加载 dll 的工作方式有所不同,但具有本机依赖项的包的结构是相同的。此外,如果这是唯一的问题,您可以使用 postpublish/postcompile 脚本来复制本机依赖项。
猜你喜欢
  • 2020-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多