C#ファイルを作成し、将来使用するためにDLLにコンパイルしたいと思います。ただし、この.csファイルは別のDLLに依存しています。.csファイル内のコードでは、次のようなことをしています。
using anotherlib.dll;
DLLにコンパイルしようとすると、コンパイラは、anotherlib.dllが見つからない(ディレクティブまたはアセンブリ参照がない)ことを通知します。
それについて行く正しい方法は何ですか?
.NET2.0を使用しています。
C#ファイルを作成し、将来使用するためにDLLにコンパイルしたいと思います。ただし、この.csファイルは別のDLLに依存しています。.csファイル内のコードでは、次のようなことをしています。
using anotherlib.dll;
DLLにコンパイルしようとすると、コンパイラは、anotherlib.dllが見つからない(ディレクティブまたはアセンブリ参照がない)ことを通知します。
それについて行く正しい方法は何ですか?
.NET2.0を使用しています。
その特定のDLLへの参照を追加する必要があります。
Visual Studioを使用している場合は、次のことを試してください
using目的の名前空間にステートメントを追加する必要がある場合がありますDLLのソースがある場合は、ファイル参照よりもプロジェクト参照を使用する方がはるかに優れています。プロジェクトを同じソリューションに追加し、上記の手順1〜2を繰り返して、[参照]ではなく[プロジェクト]を選択します。
Visual Studioを使用していない場合は、DLLの完全修飾パスを/ r:フラグを使用してコンパイラーに渡す必要があります。
/rを使用して参照する必要があります。コマンドラインコンパイラを使用している場合。リンクは次のとおりです:http: //msdn.microsoft.com/en-us/library/ms379563 (VS.80).aspx
Visual Studioを使用している場合は、プロジェクトの参照として追加するだけです。
usingステートメントは、名前空間をインポートするためのものです。名前空間を実際に使用するには、アセンブリ参照も追加する必要があります。コマンドラインから使用している場合はcsc.exe、コマンドライン引数を使用してアセンブリ参照を指定できます/reference:filename.dll。Visual Studioを使用している場合は、プロジェクトを右クリックして[参照の追加...]を選択できます。
C#ではusingステートメントをそのように使用しません。
C#での使用は、名前空間を指します。プロジェクトまたはコンパイラで他のDLLを「参照」することにより、他のDLLを「インクルード」します。Visual Studioを使用している場合は、プロジェクト参照として「anotherlib.dll」を追加してから、次の手順を実行します。
using TheNamespaceFromAnotherLibDLL;
「ソリューションエクスプローラー」でプロジェクトを右クリックし、「参照の追加」をクリックする必要があります。
その場所を参照し、参照として追加します。
このMSDNリファレンス はより多くの情報を提供するはずです。
コードで「使用する」と言う代わりに、アセンブリ参照として追加します。Visual Studioで[参照]を右クリックし、DLLを追加します。次に、コードでDLL内のものの名前空間を「使用」します。
そしてもう1つ、プロジェクトDLLが生成されているプロジェクトのbinフォルダーにそのDLL(コードでアクセスしている)を配置できます。あなたが他の人にあなたのDLLを提供していると仮定して、あなたが簡単にbinフォルダを与えることができるようにするためです。したがって、彼/彼女はあなたのDLLを友好的に使用します。また、依存するDLLが原因でエラーが発生することはありません。