Кто-нибудь знает, есть ли способ "преобразовать" определенные разделы значений вместо замены всего значения или атрибута?
Например, у меня есть несколько записей appSettings, которые указывают URL-адреса для разных веб-сервисов. Эти записи немного отличаются в среде разработчиков, чем производственная среда. Некоторые из них менее тривиальны, чем другие.
<!-- DEV ENTRY -->
<appSettings>
<add key="serviceName1_WebsService_Url" value="http://wsServiceName1.dev.domain.com/v1.2.3.4/entryPoint.asmx" />
<add key="serviceName2_WebsService_Url" value="http://ma1-lab.lab1.domain.com/v1.2.3.4/entryPoint.asmx" />
</appSettings>
<!-- PROD ENTRY -->
<appSettings>
<add key="serviceName1_WebsService_Url" value="http://wsServiceName1.prod.domain.com/v1.2.3.4/entryPoint.asmx" />
<add key="serviceName2_WebsService_Url" value="http://ws.ServiceName2.domain.com/v1.2.3.4/entryPoint.asmx" />
</appSettings>
Обратите внимание, что в первой записи единственная разница ". dev" от ".prod". Во второй записи субдомен отличается: "ma1-lab.lab1" от "ws.ServiceName2"
До сих пор я знаю, что могу сделать что-то подобное в Web.Release.Config:
<add xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)" key="serviceName1_WebsService_Url" value="http://wsServiceName1.prod.domain.com/v1.2.3.4/entryPoint.asmx" />
<add xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)" key="serviceName2_WebsService_Url" value="http://ws.ServiceName2.domain.com/v1.2.3.4/entryPoint.asmx" />
Однако, всякий раз, когда версия для этого веб-сервиса обновляется, мне также необходимо будет обновить Web.Release.Config, который победит в целях упрощения моих обновлений web.config.
Я знаю, что я мог бы также разделить этот URL на разные разделы и обновить их самостоятельно, но я скорее всего все в одном ключе.
Я просмотрел доступные web.config Transforms, но ничто не кажется привязанным к тому, что я пытаюсь выполнить.
Это сайты, которые я использую в качестве ссылки:
блог Vishal Joshi, Справка MSDN и Channel9 video
Любая помощь будет очень признательна!
-D