В моей автоматической сборке NAnt у нас есть шаг, который генерирует много кода из базы данных (используя SubSonic), и код разделяется на папки, которые соответствуют имени схемы в базе данных. Например:
- / генерируется код
- / ДБО
- SomeTable.cs
- OtherTable.cs
- / а
Имена схем предназначены для изоляции сгенерированных классов, которые понадобятся приложению. Например, есть приложение ABC, которое извлекает сгенерированный код из этой центральной папки. Я делаю это на мероприятии перед сборкой, например:
del / F / Q $ (ProjectDir) Сущности \ генерируемые * .cs
copy $ (ProjectDir) .... \ генерируемый код \ abc * .cs $ (ProjectDir) Объекты \ генерируемый * .cs
Таким образом, в каждой сборке сценарий Nant запускает генератор, который помещает весь код в центральное хранилище, а затем запускает сборку решения ... которая включает в себя события предварительной сборки для каждого из проектов, для которых требуется их создание. классы.
Итак, вот трение, которое я вижу:
1) Каждое новое приложение должно настроить это событие перед сборкой. Это отстой, когда приходится это делать.
2) На нашем сервере сборки мы не генерируем код, поэтому у меня на самом деле есть IF $ (ConfigurationName) == «Debug» перед каждой из этих команд, так что этого не происходит для сборок релиза
3) Иногда команды не выполняются, что не позволяет нашей локальной сборке. Это потерпит неудачу, если:
- сгенерированного кода пока нет (просто создаю новый проект, базы данных пока нет)
- в каталоге нет существующего кода (первая сборка)
обычно это мелкие исправления, и мы только что взломали наш путь для запуска нового проекта или новой машины и запуска со сборкой, но это мешает мне в моей нирване сборки в один клик.
Так что я хотел бы услышать предложения о том, как улучшить это, где это немного более долговечно. Может быть, перенести копирование кода в папки приложения в скрипт NAnt? Это кажется отсталым, но я готов выслушать аргументы для этого.
Ладно, отжигайте:)