2016-07-04 199 views
3

我正在研究.Net Core,并试图将> net 4.5应用程序迁移到.Net内核中。在此过程中,试图访问git的.dll文件.Net Core VS2015,无法加载DLL'git2-785d8c4':无法找到指定的模块。 (来自HRESULT的异常:0x8007007E)

以下时,我发现下面的错误是我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核心中使用此功能。

+0

您可以运行[fuslogvw](https://msdn.microsoft.com/en-us/library/e74a18c4(v = vs.110).aspx)来找出它在哪里寻找该dll。 –

回答

2

更新:与LibGit2Sharp的8月3日编译(LibGit2Sharp 0.23.0-pre20160803182831)开始,LibGit2Sharp现在同时支持普通的.NET 4.5的项目(那些使用基于.csproj解决方案)和新型project.json基于解决方案(如在介绍。 NET核心)。

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

+1

他正瞄准'net451' – Pawel

+0

@Pawel:“我正在研究.NET核心,并试图将> net 4.5应用程序迁移到.Net核心中......”我不理解什么? –

+0

@Pawel:我的目标是net451,但在.net核心。我的项目不包含dll或bin文件夹。有了这些限制,我需要使用LibGit2Sharp。 –

1

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

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

如果你想使用LibGit2Sharp包与.Net Core CLI,我相信你将不得不等待:.Net Core CLI的下一个版本(计划于2016年秋季)将使用MSBuild,所以它可能只是开始工作。或者,LibGit2Sharp的作者将来可能会发布一个兼容的软件包。

+0

您可以在.NET Core中使用具有本地依赖项的包。他们需要遵循特定的结构,但是如果他们知道应该在发布应用程序时复制哪些位。我前段时间写了一篇文章:https://blog.3d-logic.com/2015/11/10/using-native-libraries-in-asp-net-5/。它是在讨论dnx,现在加载dll的工作方式有点不同,但具有本地依赖项的包的结构是相同的。此外,如果这是唯一的问题,则可以使用postpublish/postcompile脚本来复制本地依赖项。 – Pawel

相关问题