高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

ちょっとしたクラスをプロジェクト間で共有するには

VisualStudioで同じソリューションの違うプロジェクト間で同じクラスを共有したい(定数集とか)んですが、どうすれば良いんでしょうか。


別のプロジェクト(Bとする)にあるクラスファイルを、プロジェクト(Aとする)に追加した場合、そのまま追加しようとすると、VisualStudioはAにBの持つクラスファイルのコピーを作成してしまいます。
定数集など、あとで値が変わったり、増えたりする可能性のあるものに対して、これは問題。まったく同じクラスファイルをA、Bの両方から参照できないか ということ。
Aのプロジェクトに、予めBのクラスファイルのハードリンクでも置いておけばVisualStudioはだませるのかもしれませんが、今度は配布に問題が出そう(ZIPアーカイブにソースをまとめた時点で、Aに置いたハードリンクは単純な「Bのクラスファイルのコピー」になってしまうのでは)。
VisualStudioが、プロジェクトビューとファイルシステムが異なるケースも考慮してくれたら問題ないんですが、あいにくそこまでは考えてないんですよねえ。


早い話定数集自体をひとつのプロジェクトにして、他の全部のプロジェクトから参照するようにすれば解決ではありますが、それはちょっと大げさというかなんというか。第一同じDLLが複数の場所に生成されてしまったりして、格好悪い。

そういえばEclipseなんかもそうだったような気がしますが(プロジェクト構造=ファイルシステム)、あちらではどういう対応をしてるんでしょう?