8

P/Invoke を使用してプロジェクトから非 .NET dll を呼び出しています。つまり、.dll は常に .exe のディレクトリに存在する必要があります。

コンパイル時に.dllを出力ディレクトリに自動的にコピーし、.dllをセットアップに自動的に含めるように、この依存関係をVisual Studioに伝える方法はありますか? または、これを手動で行う必要がありますか?

4

3 に答える 3

8

プロジェクトに .DLL を追加するだけです。

Propertiesそのファイルのペインを選択し、およびに設定Build Actionします。ContentCopy to Output DirectoryCopy if newer

于 2008-09-24T10:13:39.393 に答える
5

このファイルをプロジェクトにコピー/リンクし、プロパティ ウィンドウで [ビルド アクション] を [なし] に、[出力ディレクトリにコピー] を [新しい場合はコピー] または [常にコピー] に設定します。

または、任意のバッチ スクリプトを指定できる「ビルド前イベント」と「ビルド後イベント」を使用できます。

この方法は最初のオプションよりも柔軟性があるため、2 番目のオプションを好みます。

また、MSBuild ファイルを変更して、ファイルをコピーするタスクを追加することもできます。

于 2008-09-24T10:18:05.810 に答える
2

プロジェクトに .DLL を追加するだけの問題の 1 つは、デバッグ ビルドとリリース ビルドに異なるバージョンの DLL が必要になる可能性があることです。DLL のデバッグ バージョンとリリース バージョンの両方をファイルに追加し、構成に基づいて不適切なものを除外できると思われるかもしれませんが、それを行う方法が見つかりませんでした。私はVisual Studio 2010を使用しています。これはVS6で昔はうまくいったと確信しています。

于 2009-09-04T00:20:49.680 に答える