Блогът на Alexander Byndyu Continuous Integration Transformation g

Нека започнем разглеждането на работата с конфигурационни файлове с най-простата тема. Нека създадем приложение ASP.NET MVC 4. По подразбиране създаденият проект вече има 2 конфигурации (Debug, Release) и 3 конфигурационни файла (Web.config, Web.Debug.config, Web.Release.config):

alexander

Генерираните файловеWeb.Debug.configиWeb.Release.configсъдържат полезен код. За да демонстрираме техните възможности, нека добавимзамянана низа за връзка с базата данни в различни конфигурации на компилация. Ще получим следните файлове:

Конфигурационните файловеWeb.Debug.configиWeb.Release.configсъдържат схеми за трансформация. В нашия случай ще трансформираме файлаWeb.config. Използвайкиxdt:Transform="Replace"ще променим стойността на атрибутаconnectionString.

Примерът показва, че локалната база данни ще се използва за конфигурациятаDebug. КонфигурациятаReleaseще отиде на производствения сървър, така че в низа за свързване посочихме пътя до MSSQL базата данни, с която работят крайните потребители.

Целеви AfterBuild

Сега нека автоматично трансформирамеWeb.configпо време на изграждането на проекта. За да направите това, добавете извикванеTransformXmlкъм целтаAfterBuildна нашия проект:

Ако променим конфигурацията на компилация на Release and Build the project, тогава във файлаWeb.configполучаваме следното:

Както виждаме, нашият файлWeb.configе променен. Данните отWeb.Release.configбяха заменени в низа за връзка. Ако зададете конфигурацията за отстраняване на грешки и направите Build, тогава стойността отWeb.Debug.configще бъде заменена в низа за връзка.

Използване на трансформация по време на разполагане

Когато изграждате проекта, можете да видите изхода:

Оказва се, че за да създадем издание, това е достатъчно за нас по време на сглобяването на проектаукажете конфигурацията Release и съответната трансформация ще бъде приложена към Web.config.

С този подход вече не е необходимо да помним за промяната на низа за връзка с базата данни, промяната ще се случиавтоматично. Това ще премахне ръчната работа с конфигурационните файлове, което ще намали броя на грешките по време на качване.

Моля, имайте предвид, че схемата за трансформация може да се приложи къмвсеки разделот конфигурационните файлове. Това могат да бъдатappSettings,customErrorsи други. Замяната на низа за връзка е дадена като най-очевиден и популярен пример.