Порядок сборки в CruiseControl.NET с зависимостями проекта

Если у вас есть строка состояния, вы должны проектировать 320x460 (меньше 20 пикселей).

Несмотря на то, что вы можете оставить его равным 320x480 и оставить реальную строку состояния закрашенной над default.png, она будет выглядеть странно, когда телефон находится в режиме интернет-модема или удерживает вызов (еще 20 пикселей) .

Обрезка до 320x460 выглядит лучше в режиме модема.

5
задан Jacob 12 June 2009 в 19:21
поделиться

3 ответа

Не помещайте зависимость в настройки проекта CC.NET. Вам необходимо контролировать порядок сборки проекта через скрипт NAnt. Вам не нужно строить на уровне решения, вы можете строить на уровне отдельного проекта.

<target name="Project1" depends="Projects2" description="Builds project 1">
     <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
        <workingDirectory>C:\dev\ccnet</workingDirectory>
        <projectFile>CCNet.sln</projectFile>
        <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
        <targets>Build;Test</targets>
        <timeout>900</timeout>
        <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
     </msbuild>
</target>

<target name="Project2" depends="Projects3" description="Builds project 2">
     <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
        <workingDirectory>C:\dev\ccnet</workingDirectory>
        <projectFile>CCNet.sln</projectFile>
        <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
        <targets>Build;Test</targets>
        <timeout>900</timeout>
        <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
     </msbuild>
</target>

<target name="Project3" description="Builds Project 3">
     <msbuild>
            <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
            <workingDirectory>C:\dev\ccnet</workingDirectory>
            <projectFile>CCNet.sln</projectFile>
            <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
            <targets>Build;Test</targets>
            <timeout>900</timeout>
            <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
     </msbuild>
</target>

Вы можете запускать свои модульные тесты на уровне отдельного проекта, поэтому вам не нужно делать дублирующие прогоны для нескольких проектов.

8
ответ дан 13 December 2019 в 05:41
поделиться

Я предлагаю вам не пересекать концепцию проекта CruiseControl с проектом визуальной студии! Обычно я создаю проект CC, который включает в себя совокупность работ. Для меня это означает, что проект CC будет запускать сценарий NAnt. Скрипт NAnt очень тонко контролирует, что я делаю и когда. Это означает, что я могу создать свое решение (которое знает, какой проект создать первым!), Запустить свои модульные тесты, сбросить базу данных, развернуть некоторый код, разослать несколько электронных писем, провести некоторый анализ кода (NDepend и NCover великолепны!), и т. д. Это означает, что у меня есть один проект, отображаемый в CCTray, и это сохраняет все более верным тому, чем они являются на самом деле. Затем я могу создать новый проект в CC для управления переходом от DEV к STAGING и от STAGING к PROD, чтобы мы могли «нажать кнопку» для этой задачи.

2
ответ дан 13 December 2019 в 05:41
поделиться

Хотя вы уже приняли ответ, я бы предложил кое-что еще: вам не следует иметь прямую зависимость между двумя проектами. Под «прямым» я подразумеваю, что каждый раз, когда бинарные файлы в проекте A изменяются, это не должно означать, что вы автоматически используете их для сборки проекта B.

Процесс обновления этих ссылок должен контролироваться (вами), в противном случае вы неизбежно закончится множеством неработающих сборок для проекта B.

Я стараюсь держать все внешние двоичные файлы в каталоге lib (и подкаталогах) под контролем исходного кода и обновлять их только тогда, когда я решу это сделать. Под «внешними» я подразумеваю как сторонние библиотеки, так и библиотеки из других проектов моей компании (пример: http://code.google.com/p/projectpilot/source/browse/#svn/trunk/lib )

2
ответ дан 13 December 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: