LibGit2Sharp:错误 FS0229:打开二进制文件时出错 -> 错误的 cli header,rva 0

LibGit2Sharp: error FS0229: Error opening binary file -> bad cli header, rva 0

我安装了 LibGit2Sharp 和 LibGit2Sharp.NativeBinaries with paket(第一个最后一个稳定版本,然后是预发行版),我试图在 F# 脚本中使用它,但我不断收到此错误:

Script1.fsx(3,1): error FS0229: Error opening binary file '../packages\LibGit2Sharp.NativeBinaries\runtimes\win7-x64\native\git2-381caf5.dll': ../packages\LibGit2Sharp.NativeBinaries\runtimes\win7-x64\native\git2-381caf5.dll: bad cli header, rva 0

Script1.fsx(3,1): error FS3160: Problem reading assembly '': Exception of type 'Microsoft.FSharp.Compiler.ErrorLogger+StopProcessing' was thrown.

我也尝试在 C# 项目中引用它(VS2015 -> 尝试差异目标框架:4、4.5.2 和 4.6.1),但出现此错误:

与上一个稳定版本相同的错误。 知道我做错了什么吗?

您可能应该参考(在 VS 中或通过 #r 在 FSI 中):

#r @"..\packages\LibGit2Sharp.0.23.0-pre20160803182831\lib\net40\LibGit2Sharp.dll"

我可以

open LibGit2Sharp
let myrepo = new Repository(@"..\Projects\Whosebug5")

你得到的错误实际上是指本地 libgit2 库,你不需要直接引用它们。然而,LibGit2Sharp 可能找不到它们。在这种情况下,将 x64(或 x86,如果您仍然停留在 32 位)git2-381-caf5.dll 放入 LibGit2Sharp.dll 所在的同一文件夹中。在这种情况下,这是我在上面引用的同一个文件夹:

\packages\LibGit2Sharp.0.23.0-pre20160803182831\lib\net40\