5

初歩的な質問ですが…

プロジェクトファイルに含まれるdll参照とdllの画像 http://a3.vox.com/6a00c2251e5b66549d00e398ca81eb0003-pi

上の画像を見ると、"Bass.Net" dll が参照として追加され、プロジェクト内のファイルとして直接追加されています。

誰かがそれをすることのポイントを教えてもらえますか?

4

7 に答える 7

3

理由はありません。プロジェクトにないファイルを表示するように Visual Studio が設定されており (画像からはわかりにくい)、dll がたまたまメイン ディレクトリにある可能性があります。テキストは、余分なファイルが

  • Bass.dll
  • Bassenc.dll
  • lame.exe

.net はたまたま同じディレクトリ内の他のものと一緒にあるため、参照として追加する必要があります。

于 2009-06-22T21:52:51.800 に答える
2

Windows では、DLL はダイナミック リンク ライブラリであり、一連のプログラム機能をまとめてパッケージ化します。この例では、bass.dll は、このファイル (およびそれが依存するすべてのファイル) を通じてオーディオ処理に関連する機能を公開します。この機能を使用するには、Visual Studio がコンパイル時にリンクできるように、ソリューションに参照が必要です。DLL は通常、アプリケーションのビルド時に出力ディレクトリにコピーされます。

コードを適切に動作させるために必要なのはこれだけです。残りは単なる好みまたは慣例です。ソリューション エクスプローラーにファイル システムが反映されるように、プロジェクト ディレクトリに存在するすべてのファイルをソリューションに含めることを好む人もいます。通常、ソリューション ディレクトリ階層のどこかにアプリケーションが依存するライブラリを用意して、アプリケーション全体が一緒にパッケージ化されるようにします (たとえば、ソース コード管理を簡単に使用できるようにするため)。ただし、偶発的な削除を避けるために、このライブラリを BIN ディレクトリまたは Visual Studio が生成するディレクトリに配置することは望ましくありません。いずれにせよ、参照を持つことは重要な部分であり、プロジェクトまたはソリューションにあるファイルは必要ありません。

ただし、通常、外部ライブラリはソース ディレクトリから除外する必要があるため、この構造は実際にはお勧めしません。私はこのような構造を使用する傾向がありますが、繰り返しますが、これはすべて好みです。

  • ソース: ソース コードとプロジェクト ファイル
  • ライブラリ: DLL
  • サポート: その他のコードまたはプロジェクトですが、実際にはアプリケーションの一部ではありません (おそらくデプロイ スクリプト)
于 2009-06-22T22:08:37.117 に答える
1

それらをプロジェクトと出力ディレクトリに置くと、最終的に実行されるコードがそれらを参照でき、さまざまなマシンで問題なく実行できます。

参照 dll をプロジェクト ディレクトリに配置し、そこから参照し、プロジェクトに含めるように聞こえます。そうすれば、プロジェクト ディレクトリがコピーされるときに、参照 dll も一緒にコピーされます。さらに、参照 dll が見つからない場合、プロジェクトは Visual Studio で問題を起こします。

于 2009-06-22T21:59:30.537 に答える
0

他の誰かが何かをした理由を推測するのは本当に難しいですが、もし私が本当に推測しなければならないとしたら、その人は必要な dll をリソースとして埋め込んで、それがアプリケーションで確実に利用できるようにすることを考えていたと言えます。フォントやサウンドを埋め込むためにこの手法が使用されているのを見たことがありますが、dll で機能するかどうかはわかりません。しかし、それは単なる推測です。
もちろん、ファイルが利用可能であることを確認する最善の方法は、Visual Studio または Wise や InnoSetup などの他のインストール ツールを使用して、展開プロジェクトを作成することでした。

于 2009-06-23T07:36:11.387 に答える
0

最善の方法は、すべての依存関係を取得して別のフォルダーに保存し、それらを参照するだけで、ソリューションにコピーしないことです;)

于 2009-06-22T21:58:37.730 に答える
0

アセンブリ (この場合は Bass.Net.dll) に使用するクラスが含まれている場合は、そのアセンブリへの参照をプロジェクトに追加する必要があります。

于 2009-06-22T21:52:00.957 に答える
0

これは、実際には多くの状況で良いアイデアかもしれません。私の意見では、それらは3種類の依存関係です

  1. .Net 標準ライブラリのアセンブリ。それらをローカルに含めないでください。
  2. 他の開発者が MSI または exe セットアップ パッケージの一部としてインストールすることを期待するアセンブリ。これは通常、強力に署名され、GAC にコピーがあることを意味します。
  3. 他の開発者が MSI または exe インストーラーを介してインストールすることを想定していないアセンブリ。おそらく、GAC にないサードパーティまたは社内ライブラリがあるためです。

3 番目のケースで行う最も簡単な方法は、ソース リポジトリに DLL のコピーを保存することです。

于 2009-08-13T21:00:17.820 に答える