.Net Core VS2015,无法加载DLL 'git2-785d8c4':找不到指定的模块。(HRESULT: 0x8007007E)

3

我正在使用.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的位置。 - Victor Hurdugaci
2个回答

2

1
他的目标是 net451 - Pawel
@Pawel:“我正在使用.Net Core,试图将.net 4.5应用程序迁移到.Net Core”... 我没有理解到什么? - Edward Thomson
对,我们还不支持那个。 - Edward Thomson
@EdwardThomson,我在GitHub上找到了一个项目,https://github.com/libgit2/libgit2sharp。如果我尝试将这个项目转换成.NET Core,你觉得会成功吗? - Salman Lone
不太确定这里原来是什么被踩了,但请享受一条新的状态更新以满足你们的踩人乐趣。 - Edward Thomson
显示剩余4条评论

1
LibGit2Sharp包依赖于LibGit2Sharp.NativeBinaries包。由于这是一个本地包, 它使用MSBuild文件将本地库复制到输出目录。
.Net Core CLI不使用MSBuild,我认为由此产生的后果是它不支持基于MSBuild的本地包。
如果你想使用LibGit2Sharp包与.Net Core CLI, 我认为你需要等待:.Net Core CLI的下一个版本(计划于2016年秋季发布)将使用MSBuild,所以可能它只是开始工作了。或者,LibGit2Sharp的作者可能会在未来发布兼容的包。

在.NET Core中,您可以使用具有本机依赖关系的包。它们需要遵循某些结构,但如果它们这样做,cli就知道在发布应用程序时要复制哪些位。我以前写过一篇文章:https://blog.3d-logic.com/2015/11/10/using-native-libraries-in-asp-net-5/。它谈到了dnx,而现在加载dll的方式有所不同,但是具有本机依赖性的软件包的结构是相同的。此外,如果这是唯一的问题,您还可以使用postpublish/postcompile脚本来复制本机依赖项。 - Pawel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接