2016-08-06 46 views
1

我安裝了LibGit2Sharp和LibGit2Sharp.NativeBinaries與paket(第一個最後穩定版本,然後預發佈),我試圖在F#腳本中使用它,但我不斷收到此錯誤:LibGit2Sharp:錯誤FS0229:打開二進制文件時出錯 - > bad cli header,rva 0

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 - >試圖DIFF目標框架:4,4.5.2和4.6.1)引用它,但我得到這個錯誤:

error adding reference

與上次穩定版本同樣的錯誤錫永。 不知道我在做什麼不正確?

+0

我的猜測是,您正在嘗試引用.NET中的C或C++ dll。你能說明你在代碼中如何引用libgit2嗎?爲什麼你需要libgit btw?有窗戶git客戶端。 – s952163

+0

我添加了本機庫應該駐留的文件夾。你不需要直接引用它,但你需要引用LibGit2Sharp。 – s952163

回答

2

你或許應該引用(VS或通過#r在FSI):

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

我能做

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

你得到的錯誤真的是指本地libgit2庫和你不不需要直接引用它們。但是有可能LibGit2Sharp找不到它們。在這種情況下,將x64(或x86,如果仍然卡在32位中)放入LibGit2Sharp.dll所在的同一文件夾中。在這種情況下,這是我在上面引用的相同的文件夾:

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

+0

非常感謝你,我不會想到我自己!複製文件工作:-) – Selketjah

+0

@Selketjah很高興解決了它。當本地庫被包裝在.Net中時會發生這種情況。 – s952163

相關問題