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

Структура проекта

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

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


person Marcus    schedule 01.09.2015    source источник


Ответы (2)


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

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

продвигает Скотт Хансельман:

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

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

person Calvin    schedule 18.02.2016

Это выполнимо со встроенными функциями и небольшой модификацией вашего файла 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 из системы управления версиями, так как он будет меняться каждый раз, когда вы строите с другой конфигурацией.

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

person Logarr    schedule 18.02.2016