Подтвердить что ты не робот

Почему это преобразование web.config говорит, что он не может найти элемент applicationSettings?

Я получаю следующую ошибку при преобразовании файла web.config в TeamCity. Это происходит на элементе, <applicationSettings xdt:Transform="Replace">.

Ни один элемент в исходном документе не соответствует '/configuration/applicationSettings'

Исходный файл имеет этот параметр. Любая идея, как это решить?

4b9b3361

Ответ 1

Мне пришлось удалить атрибут пространства имен из configuration node. В объявленной схеме и элементах, которые я использовал, есть определенный конфликт.

xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"

Ответ 2

Я хотел бы дать более подробный ответ для других здесь.

В Visual Studio 2010 механизм преобразования web.config не учитывал объявления xmlns. Из-за этого, если ваш источник web.config имел объявление xmlns, и если вы создали преобразование, преобразование не сработало бы. Это связано с тем, что, когда мы выполняем XPath для определения источника, который должен быть заменен, мы не можем найти значение. Чтобы обойти это, вы должны удалить объявление xmlns в исходном web.config, а также преобразование.

С учетом сказанного в Visual Studio 2010 SP1 мы исправили ошибку пространства имен. Таким образом, ваш источник web.config, а также ваша трансформация должны согласовать xmlns, если у него есть другой, он должен иметь это.

Я подозреваю, что вы используете бит pre-SP1, но не уверены. Чтобы убедиться, что поведение не изменилось, если вы обновляетесь до SP1, я рекомендую вам удалить объявление xmlns из вашего исходного web.config, а также ваших преобразований. Xmlns не требуется в файле web.config, поэтому его можно удалить.