有一个非常简单的单行控制台应用程序(使用monodevelop)
但低于错误。
System.TypeInitializationException: The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception. ---> System.DllNotFoundException: git2-e0902fb
我的应用程序引用了两个nuget包
LibGit2Sharp.Repository.Init("foler path");
答案 0 :(得分:0)
libGit2Sharp
0.21.0.176 nuget确实依赖于特定的本机库,它需要' version / sha' e0902fb并未包含在1.0.119
或1.0.106
本机内容中。 (我总是从源代码构建这些包。)
LibGit2Sharp
0.22.0-pre20151023210959的预发布nuget确实包含本机nuget依赖项,并提取了LibGit2Sharp.NativeBinaries
的1.0.6版本,它们协同工作。
使用预发布版本的LibGit2Sharp
,它将引入1.0.6版本的LibGit2Sharp.NativeBinaries
,它提供了正常的64位共享库(libgit2-6aa06b6.so
)一起:
<?xml version="1.0" encoding="utf-8"?>
<packages>## Heading ##
<package id="LibGit2Sharp" version="0.22.0-pre20151023210959" targetFramework="net45" />
<package id="LibGit2Sharp.NativeBinaries" version="1.0.106" targetFramework="net45" />
</packages>
使用LibGit2Sharp的发布版本(0.21.0.176)并查找Native Nuget是否可用(?)以及基于16位Linux的libgit2-e0902fb.so
。
使用LibGit2Sharp的发布版本(0.21.0.176)并从源代码构建本机库。
答案 1 :(得分:0)
一旦你匹配原生二进制包然后在osx / linux上你可能会遇到错误
System.DllNotFoundException:NativeBinaries / osx / libgit2-821131f.dylib
在这种情况下,将/ bin中的目标目录从NativeBinaries重命名为libNativeBinaries。
有关此问题的详细讨论,请参阅libgit2sharp/issues/1170