2012-07-02 141 views
5

我試圖使用libgit2sharp庫。我唯一的代碼是加載git2.dll時出現問題?

Repository repository = new Repository(@"C:\Path\To\Repo"); 

當我運行它我得到一個錯誤說無法加載DLL'git2':指定的模塊找不到。所以,我手動去抓取libgit2sharp中的git2.dll並將其移動到目錄中。在此之後運行相同的程序時,出現另一個錯誤:試圖加載格式不正確的程序。

在研究此問題時,我發現this post以及似乎適用於海報的解決方案並不適合我。這篇文章也是在一年前做出的,並且假定修復了它,Im使用了libgit2sharp的最新分支(我嘗試了舊的版本庫沒有變化)

任何想法?

+0

您定位的是什麼版本的.NET? – Cameron

+0

目標框架是默認的,.NET框架4.0客戶端 – Whyrusleeping

+0

此外,更改爲3.5並不會更改任何內容 – Whyrusleeping

回答

2

推薦的選擇是安裝最新的LibGit2Sharp NuGet package這將負責安裝在正確的位置的一切。

但是,如果您希望手動處理此問題,則GitHub存儲庫包含x86amd64版本的git2.dll。執行mastervNext分支的結賬應檢索它們。

請注意LibGit2Sharp的每個版本都針對特定版本的libgit2二進制文件。每個LibGit2Sharp分支都包含一個libgit2子模塊,它指向包裝的libgit2提交。

submodule

爲了使其完美地工作,LibGit2Sharp組件預計git2.dll二進制爲位於成特定的樹結構。

LibGit2Sharp.dll 
|__NativeBinaries 
    |__x86 
    | |_git2.dll 
    | 
    |__amd64 
     |_git2.dll 
+0

獲得正確的git庫(x86或amd64),這已經成功了,謝謝! – Whyrusleeping

+1

我正在使用VSIX項目製作VS擴展程序。 git2.dll文件被複制到bin \ Debug | Release目錄,但不包含在我的VSIX包中。我最終不得不在我的項目中創建NativeBinaries \ amd64和x86文件夾結構,然後以git2-3f8d005.dll文件作爲快捷方式鏈接。在快捷方式屬性中,我將Include In VSIX屬性設置爲true,現在程序集會以適當的文件夾結構包含在VSIX中。它工作,但不理想,每當我更新LibGit2Sharp NuGet包時,我都需要更新快捷路徑。 – deadlydog