5

C# でライブラリを開発しましたが、ライブラリを正しく使用するためのプロジェクト テンプレートを作成したいと考えています。

新しいプロジェクトにライブラリ アセンブリへの参照を含めたいのですが、アセンブリを GAC に展開したり、特定の場所に存在するアセンブリに依存したりする必要はありません。

私が考えているのは、プロジェクト テンプレートの .zip ファイルに .dll を含めることです。つまり、新しいプロジェクトのプロジェクト フォルダー内のどこかに配置されます。おそらくLibという名前のフォルダにあります。その後、プロジェクト ファイル内の参照ヒントはそのフォルダーを指すことができます。それは良い考えですか?今後どのような問題に直面する可能性がありますか?

私が知らないプロジェクト テンプレートにそのようなサード パーティのライブラリを含めるためのメカニズムはおそらくありますか? これにどのように取り組みましたか?確かに私は最初ではありません。

4

1 に答える 1

3

私は過去にこの問題に対処しなければなりませんでした。あるケースでは、GAC にインストールされたのはログ ライブラリでした。つまり、Reference 要素には単にアセンブリ名が必要でした。別のケースでは、ライブラリをファイル システムにインストールし、その場所を含むレジストリ キーを作成し (ユーザーが気に入ってインストール場所を変更した場合に備えて)、プロジェクト テンプレート ウィザードを使用してレジストリ キーを検索し、データを入力しました。参照の HintPath で正しい場所を持つ置換アイテム。(注:テンプレートウィザードのアプローチでは、ウィザードのアセンブリをGACにインストールする必要がありますが、これは避けようとしているようです...)

ライブラリを GAC にも特定の場所にもインストールしたくない場合は、プロジェクトにアセンブリを含める方法がほぼ唯一の選択肢です。良い面として、プロジェクト テンプレートの展開はかなり簡単で、GAC やカスタム ウィザードなどをいじる必要はありません。悪い面としては、ライブラリの新しいリビジョンを作成する場合、ユーザーはすべてのプロジェクトのライブラリのコピーを更新します。

于 2011-02-25T20:11:26.357 に答える