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を見つけることができないと言って、動作しません。プログラムでそれを見つけるにはどうすればいいですか?
あなたのアプリやGAC以外のディレクトリからDLLを実行することはできません。私は、/ lib-switchについてcsc.exeを読んでいます。これは、dllをどこで検索するのかをプログラムに指示します。 – Alxandr
このスイッチはコンパイル時のみ動作し、実行時には何もしません。しかし、MSBuildは参照を出力ディレクトリに自動的にコピーするので、ほとんどの開発者はこれに気付かないのです。これを変更するには['AppDomain.CurrentDomain.AssemblyResolve'](http://stackoverflow.com/questions/5260404/resolve-assembly-references-from-another-folder)にフックすることができますが、私はそれをお勧めしません。私は見る。 – skolima
まあ、私はちょうど同じdirのリソースを残す必要がありますね。 – Alxandr