Как заставить эти два преобразования web.config работать? - PullRequest
0 голосов
/ 01 февраля 2019

Я создал конфигурацию с именем Local и хочу, чтобы мой web.local.config был преобразован таким образом:

1.Строка подключения

My web.config имеет следующую строку подключения:

<connectionStrings>
    <add name="Entities" 
         connectionString = "dummy"
         providerName="System.Data.EntityClient" />
</connectionStrings>

Хотелось бы, чтобы у моего web.local.config было следующее:

<connectionStrings>
  <add name="Entities"
     connectionString="What a nice connection string!"
     providerName="System.Data.EntityClient" />
</connectionStrings>

В настоящее время я установил свое преобразование следующим образом:

<connectionStrings>
<add name="Entities"
     connectionString="What a nice connection string!"
     xdt:Transform="SetAttributes"
     xdt:Locator="Match(name)"/>
</connectionStrings>

Я также попытался преобразовать Replace следующим образом, но это также не работает:

<connectionStrings>
  <add name="Entities"
    connectionString="What a nice connection string!"
         xdt:Transform="Replace"
         xdt:Locator="Match(name)"/>
</connectionStrings>

Но явсе еще получаю исключение формата в Entity Framework, когда мой DbContext объект пытается инициализировать себя, используя мою строку подключения.

2.Настройки приложения

My web.config имеет следующие настройки приложения:

<appSettings>
    <add key="Nice" value="true" />
    <add key="NotNice" value="true" />

    <!-- I want only this one's value to change in my web.local.config -->
    <add key="foo" value ="I am a foo." />
</appSettings>

Я хотел бы изменить только значение настройки приложения, ключ которого равен foo, чтобыmy appSettings в моем web.local.config выглядит следующим образом:

<appSettings>
    <add key="Nice" value="true" />
    <add key="NotNice" value="true" />

    <!-- I want only this one's value to change in my web.local.config -->
    <add key="foo" value ="Are you also a foo?" />
</appSettings>

Мое примененное преобразование выглядит следующим образом:

<appSettings>
    <add key="foo" value = "Are you also a foo?"
     xdt:Transform="SetAttributes(value)"
     xdt:Locator="Match(key)"/>
</appSettings>

Я также пробовал преобразование Replace следующим образомно это тоже не работает:

<appSettings>
  <add key="foo" value = "Are you also a foo?"
  xdt:Transform="Replace"
  xdt:Locator="Match(key)"/>
</appSettings>

Но когда я читаю ключ foo из моего appSettings, когда я запускаю свою конфигурацию Local в режиме отладки, код все равночитает старое значение "I am a foo."

Что я делаю не так?

1 Ответ

0 голосов
/ 01 февраля 2019

Вы пытались использовать функцию «Предварительный просмотр»?enter image description here

Кроме того, проверьте файл проекта, чтобы увидеть, есть ли строки, подобные этим:

enter image description here

Для получения дополнительной информации см. Страницу SlowCheta Tool .

...