Вставка преобразования web.debug.config не вставляется в файл web.config - PullRequest
0 голосов
/ 29 ноября 2018

Может быть, я не правильно использую преобразования, я просто изучаю их, но когда я получаю ключ, как показано ниже, в режиме отладки "stripeApiKey" имеет значение null.Когда я работаю в режиме отладки и наведите курсор мыши на «ConfigurationManager.AppSettings», я вижу все ключи, которые кэшируются в памяти, и я не вижу этого!Интересно!Я вижу это в преобразованном файле, но он не загружается в память.Я где-то пропускаю шаг?

string stripeApiKey = ConfigurationManager.AppSettings["StripeApiKey"];

Здесь я пытаюсь вставить "StripeApiKey" из файла web.debug.config

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
 <appSettings>
    <add key="StripeApiKey" value="sk_test_mytestkey123456" 
        xdt:Transform="Insert" 
        xdt:Locator="XPath(configuration/appSettings)" 
    />
 </appSettings>
</configuration>

В мой файл web.configздесь

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings>
    </appSettings>
</configuration>

Я тоже попробовал с заменой, но не повезло, поэтому должно быть что-то, чего мне не хватает в плане расположения иерархии или что-то еще, как я могу отладить это?

1 Ответ

0 голосов
/ 29 ноября 2018

Преобразования XDT не выполняются во время обычных сеансов отладки.Они имеют место только при создании проекта для развертывания.Вы должны поместить ваши значения отладки в ваш файл Web.config и преобразовать их во что-то другое в Web.Release.config (или в любую другую конфигурацию сборки, которая у вас есть).Синтаксис также будет проще, если использовать xdt:Locator="Match(key)" вместо XPath.

В качестве альтернативы вы можете использовать расширение SlowCheetah , которое добавляет задачу построения, выполняющую преобразование.Это также сделает преобразование в сеансах отладки.

...