NAgile.comにてCCNET構成ファイルサンプルが公開されています。こういうのは本当にありがたいです。
http://www.nagile.com/nuke/Default.aspx?tabid=60
元々、この元となっているArchwayさんのサンプルを使わせていただいていましたが、今後は新しいほうを使用させていただきたいと思っています。
そんなわけでちょっと中途半端なのですが、一つご紹介。
今回buildファイルが一つにまとめられて扱いやすくなりましたが、それでも構成ファイルを書くのはどうしても面倒なところがあるので、VisualStudioのマクロで可能な限り一括置換できないかと考えてみました。
0.「CruiseControl.NET\server」フォルダに「雛形」フォルダを作って、雛形ファイルを配置しておく。
 雛形ファイルは読み取り専用にしておく。
1.雛形ファイルをVisualStudioにドロップし、マクロで置換。
2.保存しようとすると保存先を聞かれるので、buildファイルについては「雛形\ccnet\buildfiles」に保存。
 「ccnet.config雛形.xml」は適当な場所に保存するか、保存しないで、そのまま「ccnet.config」に追記。
3.「雛形\ccnet」以下をプロジェクトのフォルダにコピー
意図しているのは
・必要なものは近くに置く(ツールもVSで済むならVSで)
・便利にすれば自然と共通化される(フォルダ構成規約よりも便利ツールで勝手に共通化)
そんな感じです。
新しい版はまだ実使用していないのですが、今週使ってみようと思います。
(構成ファイルは私の環境用に一部改変してしまっています。)
「template.zip」をダウンロード

マクロ(VS2003)
Imports EnvDTE
Imports System.Diagnostics
Public Module CCNetConfigReplacer
Sub ReplaceConfig()
DTE.Find.Target = vsFindTarget.vsFindTargetFiles
DTE.Find.MatchCase = False
DTE.Find.MatchWholeWord = False
DTE.Find.SearchPath = “現在のドキュメント”
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
DTE.Find.FindWhat = “VSSデータソースPath”
DTE.Find.ReplaceWith = “E:\VSS”
DTE.Find.Execute()
DTE.Find.FindWhat = “VSSユーザ”
DTE.Find.ReplaceWith = “uname”
DTE.Find.Execute()
DTE.Find.FindWhat = “VSSパスワード”
DTE.Find.ReplaceWith = “pass”
DTE.Find.Execute()
DTE.Find.FindWhat = “NAntExePath”
DTE.Find.ReplaceWith = “D:\usr\local\nant-0.85-rc3\bin\NAnt.exe”
DTE.Find.Execute()
DTE.Find.FindWhat = “プロジェクトファイルフォルダ”
DTE.Find.ReplaceWith = “D:\projects”
DTE.Find.Execute()
‘プロジェクトごとに変更
DTE.Find.FindWhat = “システム名”
DTE.Find.ReplaceWith = “ASystem”
DTE.Find.Execute()
DTE.Find.FindWhat = “プロジェクト名”
DTE.Find.ReplaceWith = “APrj”
DTE.Find.Execute()
DTE.Find.FindWhat = “ソリューション名”
DTE.Find.ReplaceWith = “ASol”
DTE.Find.Execute()
DTE.Find.FindWhat = “アセンブリ名”
DTE.Find.ReplaceWith = “AAssem”
DTE.Find.Execute()
DTE.Find.FindWhat = “動作確認フォルダ”
DTE.Find.ReplaceWith = “\\server\projects\A”
DTE.Find.Execute()
DTE.Find.FindWhat = “動作確認URL”
DTE.Find.ReplaceWith = “http://server/A/login.aspx”
DTE.Find.Execute()
End Sub
End Module