【问题标题】:not able to run LibGit2Sharp on Mono on ubuntu无法在 ubuntu 上的 Mono 上运行 LibGit2Sharp
【发布时间】:2016-01-27 04:34:53
【问题描述】:

有一个非常简单的单行控制台应用程序(使用 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");

【问题讨论】:

    标签: c# mono libgit2 libgit2sharp


    【解决方案1】:

    libGit2Sharp 0.21.0.176 nuget 确实依赖于特定的本机库,它需要 'version/sha' e0902fb 并且不包含在 1.0.1191.0.106 本机 nuget 中。 (我总是从源代码构建这些包。)

    LibGit2Sharp 0.22.0-pre20151023210959 的预发布 nuget 确实包含本机 nuget 依赖项,并提取 1.0.6 版本的 LibGit2Sharp.NativeBinaries 一起工作。

    所以:

    使用LibGit2Sharp 的预发布版本,它会引入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) 的发布版本,并通过基于 64 位 linux 的 libgit2-e0902fb.so 查找 Native Nuget 是否可用(?)。

    或者:

    使用 LibGit2Sharp (0.21.0.176) 的发布版本并从源代码构建本机库。

    【讨论】:

      【解决方案2】:

      一旦你匹配了本地二进制包然后在 osx/linux 上你可能会遇到错误

      System.DllNotFoundException: NativeBinaries/osx/libgit2-821131f.dylib

      在这种情况下,将 /bin 中的目标目录从 NativeBinaries 重命名为 libNativeBinaries。

      有关此问题的详细讨论,请参阅libgit2sharp/issues/1170

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-19
        • 1970-01-01
        • 2012-09-27
        • 2019-07-18
        • 1970-01-01
        相关资源
        最近更新 更多