Сборка проекта из рабочей копии и из архива — best practices?
При сборке проекта из рабочей копии репозитория сборочные скрипты вытаскивают номер ревизии (и, возможно, другие атрибуты) и зашивают его в продукт - в номер версии, ресурсные строки, и т. д. Всё работает хорошо. Однако иногда возникает необходимость собрать проект без присутствия рабочей копии. Соответственно возникает сложность с тем, что скрипты не могут найти источника данных для версии и т.д. Существуют ли какие-то подходы к настройке билд-системы для сборки в таких условиях. Использую git и msbuild.
Спасибо.
Передавать эту информацию через переменную окружения? И подставлять вручную/иными способами при сборке вне СКВ?
Считаю, что номер ревизии (т.е. хэш коммита/имя тэга и пр.) должны извлекаться не сборочным скриптом, а передаваться через окружение. Большинство CI-серверов имеют хорошо документированные переменные окружения, которые задаются перед началом сборки. Эти же переменные окружения можно задать и вручную.