値全体または属性を置き換える代わりに、値の特定のセクションを「変換」する方法があるかどうかは誰にもわかりませんか?
たとえば、さまざまな Web サービスの URL を指定する appSettings エントリがいくつかあります。これらのエントリは、開発環境と本番環境ではわずかに異なります。いくつかは他のものよりも重要ではありません
<!-- 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>
最初のエントリでは、".prod" と".dev" だけが異なることに注意してください。2 番目のエントリでは、サブドメインが異なります: 「ws.ServiceName2」から「 ma1-lab.lab1 」
これまでのところ、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 サービスのバージョンが更新されるたびに、Web.Release.Config も更新する必要があり、web.config の更新を簡素化するという目的が無効になります。
その URL を複数のセクションに分割して個別に更新することもできますが、すべてを 1 つのキーにまとめています。
利用可能な web.config Transforms を調べましたが、私が達成しようとしていることに向けられたものは何もないようです。
これらは私が参考として使用しているウェブサイトです:
Vishal Joshi のブログ、MSDN ヘルプ、およびChannel9 ビデオ
どんな助けでも大歓迎です!
-D