2011-09-01 11 views
9

ほとんどのショップと同様に、さまざまなプロジェクトに取り組む人々が集まっています。これらのプロジェクトでは、すべてC#のビジネスに関連する同じコア情報と機能にアクセスする必要があります。現在、プロジェクト間で共通のクラスをコピーしていますが、誰もが独自のフレーバーを持ち始めており、統合したいと考えています。共有ライブラリを複数のアプリケーションで使用できるようにする最良の方法は何ですか?

私たちはTortoise SVNを使用し、共通クラスを含む別々のプロジェクトを維持することに決めましたが、この共通コードをさまざまなアプリケーションに展開する最良の方法は不明です。私たちは、ユーザーがアプリケーションにアクセスする方法についてすべてを指示できる社内のITショップのために働いています。私たちは、製品を現実世界にリリースすることを心配する必要はありません。

私たちの思考の一部がされている:

  1. 単一のDLLにクラスをコンパイルし、グローバルアセンブリキャッシュにロード(GAC)
  2. は、単一のDLLにクラスをコンパイルし、それを保存します中央に位置する共有ドライブを他のすべてのプロジェクトで参照されるようにする
  3. クラスを1つのDLLにコンパイルして各プロジェクトに組み込む
  4. プロジェクトを開始するときに最新のクラスをフェッチするだけで、中央の共有ライブラリ(これについての私たちの解釈: http://www.yosefk.com/blog/redundancy-vs-dependencies-which-is-worse.html
  5. SVN外観http://svnbook.red-bean.com/en/1.0/ch07s03.html

私は、これは共通の問題である知っている、とあなたはこれらまたは他のオプションを検討して任意の時間を費やすならば、あなたは必ず各メソッドの落とし穴(バージョニングを説明する人を見つける、回帰テスト、 "DLL Hell"、 "The GAC sucks"など)。私はほとんど誰もが働く理由とその理由を話しているのを見つけることはできません。好ましい方法はありますか?

+0

「共通のクラスをコピーする」とは、文字通りプロジェクトで新しい.csファイルを作成し、新しいクラスの.csファイルにコピーしてコピーすることを意味しますか? – docmanhattan

+0

@docmanhattan私は.csファイルをコピーして新しいプロジェクトに追加することを意味します – kscott

答えて

2

私の会社では同じ問題があります。現在のところ、私たちはSVN Trunkに移動し、最新の.dll参照を取得し、作業中のプロジェクトのローカルReferencesフォルダを埋める.batファイルを使用します。

しかし、現在、このシステムをNuGetに切り替える作業を行っています。私はそれがどのように機能するかを100%確信しているわけではありませんが、確かに調べる価値があります。プラグインを使用してVisual Studioで共有コードリポジトリを指す場所に設定できるように見えますが、最新のコードを入手するたびに右クリックして '更新'を押すだけで簡単です。

+0

Nugetは私的に設定することができますので、これもお勧めします。ライブラリの更新を簡単にする – KallDrexx

関連する問題