Сборка или перестроение на сервере сборки (CI-сервер) - PullRequest
4 голосов
/ 22 ноября 2011

Я использую TeamCity для создания проекта .NET (точнее, нескольких проектов).

Должен ли я использовать цель перестроения или цель сборки?

Я хотел бы свести к минимумувремя сборки, не производя более новых версий проектов, которые не изменились.

Безопасно ли использовать целевую цель "Сборка"?Что если предыдущие результаты проекта были стерты?как мне убедиться, что я могу делать это безопасно?

Ответы [ 4 ]

6 голосов
/ 22 ноября 2011

Вы должны использовать rebuild , если вам нужно перестроить все проекты, например, чтобы получить согласованные временные метки или номера версий (хотя обычно изменение в связанном AssemblyInfo.cs вызывает сборку как хорошо.)

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

Однако у вас могут быть пользовательские шаги MSBuild в ваших файлах sln / csproj, которые зависят от (пере) сборки, и в этом случае вам нужно быть более осторожным, но, если хотите, выберите Build.

2 голосов
/ 25 ноября 2011

Вы должны всегда выполнять rebuild операции на серверах непрерывной интеграции.

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

По тем же причинам, если вы можете позволить себе затратить время на выполнение, вы также должны всегда очищать дерево исходных текстов перед сборкой. Либо уничтожьте его и проверьте чистую копию, либо отмените любые изменения и удалите все файлы, не находящиеся под контролем исходного кода. Если вы не делаете это на каждой сборке, по крайней мере, делайте это на сборках "простоя" ( например , сборках за ночь или на выходных) и на сборках, которые вы намерены фактически доставить клиентам или развернуть производство (и в идеале в QA).

1 голос
/ 22 ноября 2011

Вы должны использовать Build для постройки вашего проекта.Это абсолютно безопасно.

1 голос
/ 22 ноября 2011

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

...