XPath для файла web.config applicationSettings webdeploy parameters.xml неверен

Я использую webdeploy для развертывания проекта моего веб-сайта с файлом parameters.xml, который я использовал некоторое время. Пока все параметры, которые я добавил, являются атрибутами элементов, и все они работают хорошо. Но я пытаюсь получить право xpath для обновления значения элемента applicationSettings (а не атрибутов), и мне не удается, плохо, решить, виноваты ли в этом мои плохие навыки xpath или непонимание того, как работает файл параметров.

Когда я делаю развертывание, поле не обновляется, оно компилируется нормально и во время развертывания нет ошибок\предупреждений. Я хочу иметь возможность установить для этого значение True или False.

Итак, у меня есть следующее поле параметров

<parameter name="ShowExceptionCallStackOnErrorView" description="Display a call stack on the UI Error view - true for debug only." defaultValue="False" tags="">
    <parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/applicationSettings/abc.123.Properties.Settings/setting[@name='ShowExceptionCallStackOnErrorView']/value" />
</parameter>

попытка сопоставить со следующим разделом настроек приложения

<configuration>
    <applicationSettings>
        <abc.123.Properties.Settings>
            <setting name="ShowExceptionCallStackOnErrorView" serializeAs="String">
               <value>True</value>

Любая помощь приветствуется!


person user725104    schedule 07.06.2012    source источник


Ответы (1)


Это не дает вам ошибку, потому что просто не находит совпадения для замены. Вам нужно добавить /text() в конец вашего тега соответствия, если вы хотите, чтобы он заменил содержимое тега значения. Следующим образом...

<parameter name="ShowExceptionCallStackOnErrorView" description="Display a call stack on the UI Error view - true for debug only." defaultValue="False" tags="">
  <parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/applicationSettings/abc.123.Properties.Settings/setting[@name='ShowExceptionCallStackOnErrorView']/value/text()" />
</parameter>
person Ben Ripley    schedule 07.09.2012
comment
Это сработало для оригинального плаката? Решаю похожую проблему. - person Michael12345; 27.06.2013
comment
Я заставил это работать (используя /text()). Моя проблема заключалась в том, что я использовал match="//applicationSettings..." вместо match="/configuration/applicationSettings..." - person cederlof; 28.10.2013