无法 运行 在 ubuntu 上的 Mono 上使用 LibGit2Sharp
not able to run LibGit2Sharp on Mono on ubuntu
有一个非常简单的一行控制台应用程序(使用 monodevelop)
但低于错误。
System.TypeInitializationException: The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception. ---> System.DllNotFoundException: git2-e0902fb
我的应用引用了两个 nuget 包
- LibGit2Sharp 0.21.0.176
- LibGit2Sharp.NativeBinaries 1.0.119
LibGit2Sharp.Repository.Init("foler path");
libGit2Sharp
0.21.0.176 nuget 确实依赖于特定的本机库,它需要 'version/sha' e0902fb 并且不包含在 1.0.119
或 1.0.106
本机中小块。 (我总是从源代码构建这些包。)
LibGit2Sharp
0.22.0-pre20151023210959 的 pre-release nuget 确实包含原生 nuget 依赖项并拉取 LibGit2Sharp.NativeBinaries
的 1.0.6 版本,它们一起工作。
所以:
要么使用 LibGit2Sharp
的 pre-release 版本,它将引入 LibGit2Sharp.NativeBinaries
的 1.0.6 版本,它提供了正确的 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 可用(?)64 位 linux-based libgit2-e0902fb.so
.
或者:
使用 LibGit2Sharp 的发布版本 (0.21.0.176) 并从源代码构建本机库。
一旦你匹配了本地二进制文件包然后在 osx/linux 你可能 运行 出错
System.DllNotFoundException: NativeBinaries/osx/libgit2-821131f.dylib
在这种情况下,将 /bin 中的目标目录从 NativeBinaries 重命名为 libNativeBinaries。
有关这方面的详细讨论,请参阅 libgit2sharp/issues/1170
有一个非常简单的一行控制台应用程序(使用 monodevelop)
但低于错误。
System.TypeInitializationException: The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception. ---> System.DllNotFoundException: git2-e0902fb
我的应用引用了两个 nuget 包
- LibGit2Sharp 0.21.0.176
- LibGit2Sharp.NativeBinaries 1.0.119
LibGit2Sharp.Repository.Init("foler path");
libGit2Sharp
0.21.0.176 nuget 确实依赖于特定的本机库,它需要 'version/sha' e0902fb 并且不包含在 1.0.119
或 1.0.106
本机中小块。 (我总是从源代码构建这些包。)
LibGit2Sharp
0.22.0-pre20151023210959 的 pre-release nuget 确实包含原生 nuget 依赖项并拉取 LibGit2Sharp.NativeBinaries
的 1.0.6 版本,它们一起工作。
所以:
要么使用 LibGit2Sharp
的 pre-release 版本,它将引入 LibGit2Sharp.NativeBinaries
的 1.0.6 版本,它提供了正确的 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 可用(?)64 位 linux-based libgit2-e0902fb.so
.
或者:
使用 LibGit2Sharp 的发布版本 (0.21.0.176) 并从源代码构建本机库。
一旦你匹配了本地二进制文件包然后在 osx/linux 你可能 运行 出错
System.DllNotFoundException: NativeBinaries/osx/libgit2-821131f.dylib
在这种情况下,将 /bin 中的目标目录从 NativeBinaries 重命名为 libNativeBinaries。
有关这方面的详细讨论,请参阅 libgit2sharp/issues/1170