私は現在、複数の開発者がSubversionを使ってコードを配布しているASP.NETプロジェクトに取り組んでいますが、現時点ではまったく間違っています。 Subversionリポジトリを設定した人には、自分のコンピュータに固有の設定ファイル、bin \ *ディレクトリなどが含まれています。SubversionにASP.NET Webサイトを保存するベストプラクティス?
私は、このリポジトリをチェックアウトしてそれを自分のコンピュータ上で稼働させなければならない人で、コンパイルするためにすべてを並べ替えるためにかなり時間がかかりました。今私は私の会社の技術リーダーに送るためにSubversionのガイドラインの文書を書くことを考えています。そうすれば、プロセスを標準化してこれらの問題を回避することができます。
私が探しているのは、ガイドラインの入力です。
ビルド出力ディレクトリの外側でチェックされているサードパーティのライブラリを持つようにファイル構造を設定する必要があります(これらのファイルは作成されないためです)。リポジトリに含まれています)。このディレクトリの名前は "ライブラリ"にする必要があります。
Subversionにはマシン固有のファイルは含まれません。したがって、Web.configのテンプレートだけがチェックインされ、開発者が自分のマシンに合わせてカスタマイズします。この動作は既定でVisual Studio 2010に含まれており、個々の構成ファイル(
Web.Local.config
)にはテンプレート(Web.config
)が自動的に適用されます。特定のマシンに適用される限り、Subversionにはローカル設定ファイルを含めないでください。ソリューションファイルとプロジェクトファイルに絶対パスを含めないでください。
無視リストを設定する必要があります。で開始:
' *.user obj '
ウェブサイトおよびサードパーティのライブラリに固有のクラスライブラリとASP.NET 2.0のWebサイトの例のファイル構造:
' /trunk/ Libraries/ ThirdParty.dll MyClassLibrary/ bin/ [Ignore] obj/ [Ignore] Properties/ AssemblyInfo.cs SomeClass.cs MyClassLibrary.csproj - Holds references to third-party libraries. For example: ../Libraries/ThirdParty.dll MyWebApplication/ bin/ ThirdParty.dll [Ignore; copied by build process] ThirdParty.dll.refresh - Contains "../Libraries/ThirdParty.dll" Default.aspx Default.aspx.cs Web.config [Ignore] Web.config.template MySolution.sln - Holds list of projects. - Has reference information for projects. '
代替
Web.config.template
を使用しますWeb.config
のLocal.config
ファイルを含めるようにしてください。ただし、柔軟性が低い可能性があります。WebサイトプロジェクトではなくWebアプリケーションプロジェクトを使用する場合、参照は.refreshファイルではなくプロジェクトファイルに格納されるため、bin /フォルダは無視されます。
上記の提案に間違いがありますか?何か不足していますか?誰も無視リストの提案がありますか?私は今、いくつかのエントリーを開始しました。
だけでは/ bin /ディレクトリによって決定された外部アセンブリ参照を投影しですから、.refreshファイルを/ bin /ディレクトリに置く必要があります(AFAIK)。 SVNがbin/*。dllを無視するようにすることができますので、これは問題ではありません。私の意図は、SVNにビルド出力を含めることは決してありませんでした。これはまさにこれらのガイドラインが避けようとしているものです。 私は実際に "Local.config"ファイルを最初にインポートするためのガイドラインを書いていましたが、configファイルには非常に多くのセクションがあるので、開発者が設定できるファイルのコピーを持つほうが良いかもしれないと思っていました。 – Blixt
ああ - 私はプロジェクトファイルなしで2.0の "ウェブサイト"プロジェクトを忘れてしまった。私はそれらを好きではなかった。しかし、あなたは選択肢があります(WebアプリケーションはVS2005 SP1に再導入されました)。 「Webサイト」を作成してもプロジェクトファイルがなく、binディレクトリが参照されるようになるか、またはプロジェクトファイルによって参照が定義された「Webアプリケーション」を作成することができます。フォルダ。 しかし、私はsvnに "ウェブサイト"プロジェクトを配置することに多くの経験がありません。 – Pete
Peteでは、接続文字列を別の設定ファイルに配置することもできます(.NET 1.1をまだ使用していない場合)。 ' 'を使用してください。 –