Почему некоторые преобразования Web.config токенизируются в SetParameters.xml, а другие нет?

В последнее время я довольно часто использовал преобразования конфигурации в VS2010, но меня смущает относительно того, почему некоторые преобразования применяются непосредственно к Web.config в пакете, а другие хранятся с токеном в SetParameters.xml, а затем применяются при публикации.

Например, возьмите Web.config со следующей строкой подключения и настройкой приложения:

<connectionStrings>
  <add name="AutoDeployDb" connectionString="Data Source=(local);Initial Catalog=AutoDeploy;User ID=AutoDeployUser;Password=Passw0rd"/>
</connectionStrings>
<appSettings>
  <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />
</appSettings>

Тогда вот соответствующее преобразование конфигурации для текущей конфигурации сборки:

<connectionStrings>
  <add xdt:Transform="Replace" xdt:Locator="Match(name)" name="AutoDeployDb" connectionString="Data Source=MyDevServer;Initial Catalog=AutoDeploy;User ID=AutoDeployUser;Password=s*#@Kdsl" />
</connectionStrings>
<appSettings>
  <add xdt:Transform="Replace" xdt:Locator="Match(key)" key="ChartImageHandler" value="storage=file;timeout=20;dir=d:\inetpub\AutoDeploy\TempImageFiles\"/>
</appSettings>

Это оба преобразования «Заменить» и кроме одного, являющегося соединением соответствие строки по «имени», а другой - соответствие настроек приложения по «ключу», на мой взгляд, они идентичны.

Теперь загляните внутрь SetParameters.xml в результирующем пакете, и только строка подключения имеет узел setParameter. В Web.config папки PackagTmp преобразование настройки приложения уже было применено, в то время как строка подключения имеет значение «$ (ReplacableToken_AutoDeployDb-Web.config Connection String_0)», которое применяется только при развертывании пакета.

Почему это? Это что-то особенное для строк подключения (или, наоборот, для настроек приложения)? Я ценю обоснование этого подхода , я просто не понимаю, почему он применяется к одним настройкам, а не к другим.

Может ли кто-нибудь пролить свет на это?

33
задан Sayed Ibrahim Hashimi 11 November 2010 в 06:07
поделиться