2011-06-20 12 views
1

lib-folderの中にあるサードパーティのライブラリをいくつか含むプロジェクトのビルドファイルを作成しています。だから私のビルドスクリプトは次のようになります。サブディレクトリにナントライブラリと参照ライブラリを組み込む

<csc target="library" ....> 
    <sources> 
     <include name="**/*.cs" /> 
     <!-- common assembly-level attributes --> 
     <include name="../../src/CommonAssemblyInfo.cs" /> 
     <exclude name="Properties/AssemblyInfo.cs" /> 
    </sources> 
    <references> 
     <include name="${build.dir}/bin/lib/Should.Fluent.dll" /> 
    </references> 
</csc> 

コンパイルが正常に動作、しかし、ランタイムは、ライブラリShould.Fluent.dllを見つけることができないと言って、動作しません。プログラムでそれを見つけるにはどうすればいいですか?

答えて

0

ライブラリは、GACまたは参照アセンブリと同じディレクトリに存在する必要があります。手動でコピーして、問題が解決するかどうかを確認してください。はいの場合は、<copy>タスクを追加してください出力問題に参照があります。

+0

あなたのアプリやGAC以外のディレクトリからDLLを実行することはできません。私は、/ lib-switchについてcsc.exeを読んでいます。これは、dllをどこで検索するのかをプログラムに指示します。 – Alxandr

+0

このスイッチはコンパイル時のみ動作し、実行時には何もしません。しかし、MSBuildは参照を出力ディレクトリに自動的にコピーするので、ほとんどの開発者はこれに気付かないのです。これを変更するには['AppDomain.CurrentDomain.AssemblyResolve'](http://stackoverflow.com/questions/5260404/resolve-assembly-references-from-another-folder)にフックすることができますが、私はそれをお勧めしません。私は見る。 – skolima

+0

まあ、私はちょうど同じdirのリソースを残す必要がありますね。 – Alxandr

関連する問題