2012-07-02 28 views
5

私はlibgit2sharpライブラリを使用しようとしています。私の唯一のコードはgit2.dllをロード中に問題が発生しましたか?

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

であると私はそれを実行したとき、私はDLL「GIT2」をロードできませんというエラーが出ます:指定されたモジュールが見つかりませんでした。だから、私は手動でlibgit2sharpからgit2.dllを取得し、ディレクトリに移動しました。それ以降同じプログラムを実行すると、別のエラーが表示されます。不正な形式のプログラムを読み込もうとしました。

これを調べているうちに、私はthis postを見つけましたが、ポスターのために働いていたようです。その投稿も1年前に作られたと仮定された修正が行われました。私はlibgit2sharpの最新のブランチを使っています(古いリポジトリは変更なし)

アイデア?

+0

どのバージョンの.NETをターゲットにしていますか? – Cameron

+0

ターゲットフレームワークはデフォルトです。.NET Framework 4.0クライアント – Whyrusleeping

+0

また、これを3.5に変更すると何も変更されません。 – Whyrusleeping

答えて

2

最新のLibGit2Sharp NuGet packageをインストールすることをお勧めします。すべてを正しい場所にインストールします。

しかし、これを手で処理したい場合は、git2.dllx86amd64の両方のバージョンがGitHubリポジトリに含まれています。 masterまたはvNextブランチのチェックアウトを実行すると、それらを取得する必要があります。

すべてのバージョンの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ファイルにショートカットとしてリンクする必要がありました。ショートカットプロパティでは、VSIXに含めるプロパティをtrueに設定して、アセンブリが適切なフォルダ構造を持つVSIXに含まれるようになりました。動作しますが、理想的ではありません.LibGit2Sharp NuGetパッケージを更新するたびに、ショートカットパスも更新する必要があります。 – deadlydog

関連する問題