2008-08-01 14 views
26

SVNを使用している共同開発環境でBINディレクトリをチェックするベストプラクティスは何ですか?プロジェクトレベルの参照はチェックインから除外されるべきですか?すべてのbinディレクトリを追加する方が簡単ですか?ベストプラクティス:コラボレーション環境、Binディレクトリ、SVN

私は多くのDotNetNukeサイトを開発しており、複数の開発者環境では、環境設定を正しく取得することは常に大きな課題です。

(もちろん)究極の目標は、SVNから新しい開発者のチェックアウトにトランクを持っているDNNデータベースを復元し、単に「仕事」はすべてを持っていることです...

答えて

19

であることが予想されるすべてのアセンブリGACはGACにとどまるべきです。これには、System.web.dllまたは本番環境のGACに展開する他のサードパーティのDLLが含まれます。つまり、新しい開発者はこれらのアセンブリをインストールする必要があります。

他のすべてのサードパーティ製のアセンブリは、相対パスで参照する必要があります。私の典型的な構造は:

-Project 
--Project.sln 
--References 
---StructureMap.dll 
---NUnit.dll 
---System.Web.Mvc.dll 
--Project.Web 
---Project.Web.Proj 
---Project.Web.Proj files 
--Project 
---Project.Proj 
---Project.Proj files 

です。Project.WebとProjectは、相対的にルート/参照フォルダ内のアセンブリを参照しています。これらの.dllはSubversionにチェックインされます。

とは別に、*/bin */bin/* objはグローバルな無視パスに入れる必要があります。

この設定では、アセンブリへの参照はすべてGAC(すべてのコンピュータで機能するはずです)またはソリューション内の各プロジェクトを基準にして行われます。

4

これは.Net固有の質問ですか?

一般に、SCMに既に含まれているファイルから自動的に作成されたものはチェックインしないことがベストプラクティスです。そのすべては、自動構築プロセスの一部として理想的に作成されます。

あなたが参照しているbinディレクトリには、プロジェクトのビルドではなく、サードパーティのバイナリが含まれている場合、このアドバイスを無視します(下線?)。

2

私がJavaをコーディングしているとき、Mavenはこの問題をかなり助けます。私たちはpom.xmlをscsにコミットし、mavenリポジトリにはすべての依存関係が含まれています。 それはそれを行う良い方法のように思えます。

1

ベンダー固有のヘッダーとバイナリをすべて含むベンダーディレクトリを使用することに従います。目標は、誰もがそれをチェックアウトし、トップレベルビルドスクリプトを実行するだけで、製品を構築できるはずであるということです。

4

Tree Surgeonは、空の.NET開発ツリーを作成する優れたツールです。これは長年の使用で調整され、多くのベストプラクティスを実装しています。

関連する問題