2014-10-07 2 views
0

Мы выпускаем обновления нашего продукта несколько раз в год, и нам нужно иметь возможность вносить изменения в web.configs клиента.Преобразование файлов web.config

Мы хотим использовать эти изменения с помощью C#.

Кто-нибудь использовал программу ctt.exe и внедрил для нее класс-оболочку? При начальных тестах, кажется, все полосы пропускаются, что не идеально.

+0

обновить ли вы web.config для каждого выпуска на одного клиента или есть только один web.config для всех клиентов? – artm

+0

В каждом выпуске могут быть изменения, и клиенты могут иметь измененные части web.config, поэтому нам нужно настроить таргетинг в соответствии с преобразованиями веб-конфигурации. – Tim

+0

Вы смотрели на slowcheetah? http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5 Также я предполагаю, что вы знаете о web.config.release – artm

ответ

2

Обнаружена библиотека Microsoft.Web.XmlTransform, которая полностью устраняет это без необходимости использования сторонних инструментов.

using Microsoft.Web.XmlTransform; 

...

using (XmlTransformableDocument document = new XmlTransformableDocument()) 
       using (XmlTransformation transformation = new XmlTransformation(transformFilePath)) 
       { 
        document.PreserveWhitespace = true; 
        document.Load(sourceFilePath); 

        var success = transformation.Apply(document); 
        if (!success) 
        { 
         string message = string.Format(
          "There was an unknown error trying while trying to apply the transform. Source file='{0}',Transform='{1}', Destination='{2}'", 
          sourceFilePath, transformFilePath, destinationFilePath); 
         throw new Exception(message); 
        } 

        document.Save(destinationFilePath); 
       }