2015-09-01 6 views
1

Project structureЧто необходимо для преобразования корневого web.config из конфигураций конфигурации подпапки?

Итак, у меня есть эта структура с одним web.config в моем корне и одним web.config в подпапке с именем Config. Я хочу преобразовать корневой web.config при сборке. Я знаю, что это может быть достигнуто, но я не знаю, как это сделать.

Я видел это в другом проекте без каких-либо сообщений или предварительных действий.

ответ

0

Попробуйте этот инструмент под названием SlowCheetah:

https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5

продвигаемого Скотт Hanselman:

http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx

Это визуальная студия расширение, которое позволяет преобразовать XML-файлы в подпапках - Я предполагаю, что это то, что вы хотите. Насколько я помню, он работает и для сервера сборки TFS.

0

Это возможно со встроенными функциями и небольшой модификацией вашего файла csproj.

Добавьте эти строки в свой файл csproj, и он создаст обновленный web.config для каждой сборки. Он берет ваш файл web.config в папке Config, применяет к нему преобразование из выбранного файла конфигурации преобразования, а затем помещает вывод в корневой каталог.

<PropertyGroup> 
    <BuildDependsOn> 
     CustomWebConfigTransform; 
     $(BuildDependsOn); 
    </BuildDependsOn> 
</PropertyGroup> 
<Target Name="CustomWebConfigTransform"> 
    <TransformXml source="$(ProjectDir)\Config\Web.config" 
    transform="$(ProjectDir)\Config\Web.$(Configuration).config" 
    destination="Web.config" /> 
</Target> 

Я подтвердил, что это работает для подпапок. Я использую версию этого без подпапок для моих проектов веб-API. Я рекомендую исключить корневой файл web.config из исходного элемента управления, поскольку он будет меняться каждый раз, когда вы будете строить с другой конфигурацией.

Кроме того, если на вашем сервере сборки нет доступных инструментов веб-разработчика, преобразование не будет работать.