Я думаю, что делать то, что вы хотите, было бы огромной болью, потому что вам пришлось бы скрывать некоторые проекты CC.net (скажем, отладочные) и по-прежнему создавать их, если флажок установлен.Это было бы неудобно для доступа к странице проекта с историей и журналами.Если вы задумывались о редактировании конфигурации проекта ccnet на лету, не забудьте, что вам придется перезапустить сервис, чтобы получить его обновленную версию.Наконец, ваши изменения могут подойти для панели инструментов, но это вызовет проблему с cctray.
Вместо этого я бы выбрал два разных проекта: один в режиме отладки, а другой в выпуске.Это было бы намного проще и понятнее.Например, у вас может быть отладочный проект, сборки которого запускаются из обновлений репозитория управления версиями, и выпуск, который создается вручную или ночью.
EDIT Для двух разных проектов я бы сделал блок с общим кодом (для Release и Debug) с двумя динамическими параметрами (скажем, Conf и OutPath).Я также написал бы третий проект, который позаботится о выполнении сценария db, этот третий проект будет запускаться при каждой успешной сборке Release.Подобные действия позволят вам выполнить сборки Debug / Release отдельно, выполнить скрипт отдельно (при принудительной сборке) и при каждой сборке Release и, наконец, проверить скрипт (при каждом коммите).Это будет выглядеть так:
<cb:define name="MyProject-Block">
<project name="MyProject - $(Conf)" queue="General" queuePriority="100">
<workingDirectory>D:\MyProject</workingDirectory>
<triggers>
<intervalTrigger seconds="300"/>
</triggers>
<cb:state-block/>
<cb:svn-block svnpath="MyProject"/>
<tasks>
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>D:\MyProject</workingDirectory>
<projectFile>MyProject.sln</projectFile>
<buildArgs>/p:Configuration=$(Conf);OutputPath="$(OutPath)"</buildArgs>
<targets>Clean;Build</targets>
<timeout>600</timeout>
<logger>F:\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
</msbuild>
</tasks>
<publishers>
<xmllogger/>
<statistics />
<modificationHistory onlyLogWhenChangesFound="true" />
<cb:email-block/>
</publishers>
</project>
</cb:define>
<cb:MyProject-Block Conf="Debug" OuputPath="..\Compil\Debug" />
<cb:MyProject-Block Conf="Release" OuputPath="..\Compil\Release" />
<project name="MyProject. DbScript" queue="General" queuePriority="110">
<workingDirectory>D:\MyProject\DB</workingDirectory>
<triggers>
<projectTrigger project=" MyProject - Release">
<triggerStatus>Success</triggerStatus>
<innerTrigger name="Eurosport.Business" type="intervalTrigger" seconds="60" buildCondition="ForceBuild" />
</projectTrigger>
<intervalTrigger seconds="300"/>
</triggers>
<cb:state-block/>
<cb:svn-block svnpath="MyProject/DB"/>
<tasks>
<!-- Executing the script here -->
</tasks>
<publishers>
<xmllogger/>
<statistics />
<modificationHistory onlyLogWhenChangesFound="true" />
<cb:email-block/>
</publishers>
</project>