Я недавно был назначен команде разработчиков релизов, чтобы сделать процесс сборки более управляемым. В истории нашего продукта мы просто построили все в нашем хранилище для управления версиями с каждой сборкой, так как это не так уж и много значит для этого. Это включает сторонние продукты, для которых у нас есть источник (включая, например, корпоративную библиотеку), собственный собственный код инфраструктуры и, наконец, сам продукт. Однако после нескольких лет устойчивого роста продукта этот процесс стал очень громоздким.TFS: Как кэшировать фреймворки для облегчения процесса сборки?
Это означает, что мы хотели бы создать своего рода многоуровневую систему сборки, в которой только продукты (которые меняются каждый день) создаются ежедневно, в то время как наш рамочный код (который меняется гораздо реже) и наша третья сторона код (почти никогда) строятся только тогда, когда они меняются. У нас есть символ & исходный сервер, созданный для облегчения кода отладки, например, наши библиотеки фреймворков, которые не были недавно созданы, каждая из которых, но мы все еще выясняем, как это сделать. Для записи мы используем TFVC для управления источником.
Мои вопросы таковы: какие виды практики используются для такого рода вещей? Разрабатываем ли мы отдельные командные проекты для каждого «уровня» этой сборки (т. Е. Командный проект для третьей стороны, для структуры, для продуктов) и разделить их друг на друга? Мы когда-либо проверяем сборки продуктов одного уровня в следующем, чтобы гарантировать, что зависимости решаются? Если нет, где живут бинарные файлы? Будут ли эти требования требовать использования GAC?
И, наконец, если есть какие-либо указания в отношении такого рода вещей, которые я люблю делать с чтением; но, поскольку я новичок в создании/выпуске техники, я еще не знаю, где искать.
Спасибо!
Невероятные. Это подход, о котором я мечтал, грубо говоря. Однако идея автоматической установки рамки очень интересна! Эта часть, которую я не представлял, вместо этого как-то использовал источник управления для управления двоичными файлами. Однако есть определенная привлекательность в том, что разные сборки связаны только с использованием установщика. Означает ли это, что, когда вы отправляете товар, необходимо установить несколько инсталляторов для установки продукта, или это зависимости, переупакованные в установщике конечного продукта? – bwerks
Кроме того, я предполагал, что указанная вами ссылка будет http://www.amazon.com/Inside-Microsoft-Build-Engine-Foundation/dp/0735645248/ref=sr_1_1?ie=UTF8&qid=1312987188&sr=8- 1, но я счастлив, что это было что-то еще! Я немного подслушиваю, что это не на разжигании, но я приказал это независимо - взволнованно читать! – bwerks
Мы сделали отдельную установку. Таким образом, клиент должен сначала установить структуру, а затем приложение. Но вы можете создать отдельный установщик, который сочетает в себе как вашу инфраструктуру, так и приложение. Просто создайте mergemodule для каждого и создайте установщик, который ничего не делает, кроме установки mergemodules. – Sardaukar