Как сохранить разные конфигурации, например CD и CMS, в Tfs?

#c# #asp.net-mvc #sitecore #sitecore8

#c# #asp.net-mvc #sitecore #sitecore8

Вопрос:

Я пытаюсь сохранить разные конфигурационные файлы для отдельной среды CD и CMS, есть ли какие-либо инструменты или опции, которые я могу использовать?

я использую vs2013 с tfs.

Спасибо

Комментарии:

1. CD = «Доставка контента», CMS = «Система управления контентом»?

2. Вы создаете разные пакеты сборки для CD и CM или развертываете один и тот же?

3. в настоящее время я еще не настроил никаких пакетов, просто стараюсь копировать вручную

Ответ №1:

Для обычных конфигураций .NET у вас есть возможность добавлять файлы преобразования на основе конфигураций сборки. Вы также можете использовать Slowcheetah, который имеет аналогичную идею для файлов, которые не являются стандартными конфигурациями .net. Идея состоит в том, чтобы иметь одну конфигурацию сборки с соответствующими конфигурациями преобразования. Например, вы настраиваете в Visual Studio определение сборки для CM и одно для CD. С помощью файлов преобразования вы можете создавать конкретные конфигурации среды на основе соответствующей среды (конфигурации для CM или CD). Для развертывания вы можете настроить любой инструмент, который вы используете, какую конфигурацию сборки он должен использовать. Например, для развертывания в среде CD вы должны выполнить сборку с использованием конфигурации CD и так далее.

Ответ №2:

Вы можете создать структуру каталогов, в которой вы храните файлы CM и CD. Ниже приведен пример структуры каталогов

—App_Config

——Включить

———zConfig

————CM Config

————Конфигурация CD

Затем вы можете создать сценарий сборки, который учитывает конфигурацию сборки (debug, release). Исходя из этого, когда вы создадите свое решение, оно будет знать, какую конфигурацию выбрать.

Я бы предложил определить новую конфигурацию сборки, чтобы свести к минимуму риск путаницы. Например, создайте 1 для CM и 1 для CD

Это пример того, как мой сценарий сборки выглядит в моем решении

 if %Configuration% EQU  DEBUG ( if exist %SolutionDir%....WebsiteApp_ConfigIncludeABBsUAT  RMDIR /S /Q  %SolutionDir%....WebsiteApp_ConfigIncludeABBsUAT  if exist %SolutionDir%....WebsiteApp_ConfigIncludeABBsPRODCluster1 RMDIR /S /Q  %SolutionDir%....WebsiteApp_ConfigIncludeABBsPRODCluster1 if exist %SolutionDir%....WebsiteApp_ConfigIncludeABBsPRODCluster2 RMDIR /S /Q  %SolutionDir%....WebsiteApp_ConfigIncludeABBsPRODCluster2 if exist %SolutionDir%....WebsiteApp_ConfigIncludeABBsPRODCluster3 RMDIR /S /Q  %SolutionDir%....WebsiteApp_ConfigIncludeABBsPRODCluster3 )
 

Он скопирует конфигурационный файл из моего решения в path Website App_ConfigIncludeABBs PRODCluster1, если моя конфигурация сборки — Debug

Комментарии:

1. Будет ли конфигурация сборки просматриваться в папке app_config или только в web.config?

2. Если вы уже разместили файлы конфигурации в своем решении, вашему сценарию сборки необходимо просмотреть app_config из решения, чтобы он мог скопировать и вставить его в папку конфигурации приложения website. В скрипте сборки вы уже укажете, куда помещать файлы. Либо папка bin, либо папка app_config / include

3. Я добавил пример своего скрипта сборки, который копирует файлы конфигурации из моего решения в WebsiteApp_ConfigIncludeABBsPRODCluster1

4. это в сценарии post build?

5. Да, вы добавляете его в событие post build