2017-11-02 49 views
0

私はLibGit2Sharpを使用し、Costura.Fodyを使用しようとしている小さなexeを持っていますので、私は配布する単一のexeを持っています。(実際には、ファイルも同様ですが、それは問題ありません)。costura.fody別のdllを参照するDLL

LibGet2Sharp.dllgit2-1196807.dllにかなり堅い参照があり、前者の方法で後者を埋め込む方法がわからないようです。私はいくつかのことを試してみたが、私は私の最高の試みがあると思う:のは、ソリューションのpackagesフォルダからコピーされ、Build Action = Embedded ResourceCopy to Output Directory = Do Not Copyに設定されているこれらの.dllの

すべて。

add .dll's to project explicitely

LibGit2Sharp参照がCopy Local = falseに設定され、IはFodyWeavers.xmlで簡単ルート試みた:

<?xml version="1.0" encoding="utf-8" ?> 
<Weavers> 
    <Costura> 
    </Costura> 
</Weavers> 

を、より複雑である:ただし

<?xml version="1.0" encoding="utf-8" ?> 
<Weavers> 
    <Costura> 
    <Unmanaged64Assemblies> 
     Costura64\LibGit2Sharp 
     Costura64\git2-1196807 
    </Unmanaged64Assemblies> 
    <Unmanaged32Assemblies> 
     Costura32\LibGit2Sharp 
     Costura32\git2-1196807 
    </Unmanaged32Assemblies> 
    </Costura> 
</Weavers> 

、私はいつもエラー、exeを開くときに、私は最初にgitライブラリを使用するボタンをクリックして、取得:

... 'LibGit2Sharp.Core.NativeMethods'が例外をスローしました。 ---> System.DllNotFoundException:DLL 'git2-1196807'を読み込めません: 指定されたモジュールが見つかりませんでした。 (HRESULTからの例外: 0x8007007E)...

私がやったいくつかのことは私にLibGet2Sharp DLLが(git2-1196807に関するエラーではなく)アクセスできないというエラーを与えているが、私はそれがちょうどその時だと思います私はFodyを不自由にしました。

私はあなたに与えることのできるアドバイスを感謝します。これは私を困惑させる。 git2-1196807.dllファイルを展開した場所 "。\ lib \ win32 \ x86"に置き換え、64ビットに相当する場合は正常に動作しますが、これはcostura.fodyを使用する際のポイントになります。

思考?

答えて

0

LibGit2Sharpが通常のAnyCPU .netリファレンスである場合は、単にプロジェクトの参照として使用するだけで十分ですが、Costura32/Costura64ディレクトリには埋め込まないでください。これらのディレクトリは、LoadLibraryなどを介してロードされる通常のWin32スタイルのDLL用です。

+0

これは私の最初の試行でしたが、私はまずcostura.fodyをソリューションに追加してそのまま試しましたが、このエラーはREのgit2-1196807.dllになってしまいました。 – Keith

関連する問題