Мы знаем, что в Visual Studio есть замечательная функция преобразования Web.config при публикации. Таким образом, мы можем иметь что-то вроде следующего в Web.Release.config, чтобы заменить исходное значение в Web.config:
Web.config:
<add key="SomeKey" value="DebugValue"/>
Web.Release.config:
<add key="SomeKey" value="ReleaseValue" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
Это все хорошо, если у вас нет опечатки в конфигурации преобразования. Так, например, если у вас есть следующая строка в конфигурации преобразования:
<add key="SomeKeyTypo" value="ReleaseValue" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
Тогда элемент «SomeKey» не будет заменен, потому что преобразование не найдет ключ и молча напечатает это предупреждение:
...\Web.Release.config: Warning : No element in the source document matches '/configuration/appSettings/add[@key='SomeKeyTypo']'
Проблема заключается в том, что в некоторых ситуациях, например, если вы изменили ключ в основном Web.config и забыли изменить его в Web.Release.config, при публикации есть большая вероятность, что вы не 't читать выходные сообщения публикации, и вы пропустите предупреждение, что может привести к катастрофе, поскольку в вашем приложении будет использоваться значение отладки вместо значения выпуска.
Таким образом, вопрос заключается в том, что когда вы определяете преобразование в Web.Release.config, есть ли способ указать, что данный элемент ДОЛЖЕН быть заменен, и если ключ не найден, throw и ERROR вместо ПРЕДУПРЕЖДЕНИЕ и выйти из публикации с каким-то кодом ошибки?