ほとんどのショップと同様に、さまざまなプロジェクトに取り組む人々が集まっています。これらのプロジェクトでは、すべてC#のビジネスに関連する同じコア情報と機能にアクセスする必要があります。現在、プロジェクト間で共通のクラスをコピーしていますが、誰もが独自のフレーバーを持ち始めており、統合したいと考えています。共有ライブラリを複数のアプリケーションで使用できるようにする最良の方法は何ですか?
私たちはTortoise SVNを使用し、共通クラスを含む別々のプロジェクトを維持することに決めましたが、この共通コードをさまざまなアプリケーションに展開する最良の方法は不明です。私たちは、ユーザーがアプリケーションにアクセスする方法についてすべてを指示できる社内のITショップのために働いています。私たちは、製品を現実世界にリリースすることを心配する必要はありません。
私たちの思考の一部がされている:
- 単一のDLLにクラスをコンパイルし、グローバルアセンブリキャッシュにロード(GAC)
- は、単一のDLLにクラスをコンパイルし、それを保存します中央に位置する共有ドライブを他のすべてのプロジェクトで参照されるようにする
- クラスを1つのDLLにコンパイルして各プロジェクトに組み込む
- プロジェクトを開始するときに最新のクラスをフェッチするだけで、中央の共有ライブラリ(これについての私たちの解釈: http://www.yosefk.com/blog/redundancy-vs-dependencies-which-is-worse.html)
- SVN外観http://svnbook.red-bean.com/en/1.0/ch07s03.html
私は、これは共通の問題である知っている、とあなたはこれらまたは他のオプションを検討して任意の時間を費やすならば、あなたは必ず各メソッドの落とし穴(バージョニングを説明する人を見つける、回帰テスト、 "DLL Hell"、 "The GAC sucks"など)。私はほとんど誰もが働く理由とその理由を話しているのを見つけることはできません。好ましい方法はありますか?
「共通のクラスをコピーする」とは、文字通りプロジェクトで新しい.csファイルを作成し、新しいクラスの.csファイルにコピーしてコピーすることを意味しますか? – docmanhattan
@docmanhattan私は.csファイルをコピーして新しいプロジェクトに追加することを意味します – kscott