.Net Core VS2015,无法加载DLL'git2-785d8c4':无法找到指定的模块。 (来自HRESULT的异常:0x8007007E)
我正在研究.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核心中使用此功能。
更新:与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。
他正瞄准'net451' – Pawel
@Pawel:“我正在研究.NET核心,并试图将> net 4.5应用程序迁移到.Net核心中......”我不理解什么? –
@Pawel:我的目标是net451,但在.net核心。我的项目不包含dll或bin文件夹。有了这些限制,我需要使用LibGit2Sharp。 –
LibGit2Sharp包依赖于LibGit2Sharp.NativeBinaries包。由于这是native package,它使用MSBuild文件将本机库复制到输出目录。
.Net Core CLI不使用MSBuild,我相信因此它不支持基于MSBuild的本地程序包。
如果你想使用LibGit2Sharp包与.Net Core CLI,我相信你将不得不等待:.Net Core CLI的下一个版本(计划于2016年秋季)将使用MSBuild,所以它可能只是开始工作。或者,LibGit2Sharp的作者将来可能会发布一个兼容的软件包。
您可以在.NET Core中使用具有本地依赖项的包。他们需要遵循特定的结构,但是如果他们知道应该在发布应用程序时复制哪些位。我前段时间写了一篇文章:https://blog.3d-logic.com/2015/11/10/using-native-libraries-in-asp-net-5/。它是在讨论dnx,现在加载dll的工作方式有点不同,但具有本地依赖项的包的结构是相同的。此外,如果这是唯一的问题,则可以使用postpublish/postcompile脚本来复制本地依赖项。 – Pawel
您可以运行[fuslogvw](https://msdn.microsoft.com/en-us/library/e74a18c4(v = vs.110).aspx)来找出它在哪里寻找该dll。 –