Установка на основе WIX приводит к недопустимому файлу конфигурации

ИЗМЕНИТЬ

Я решил попытаться найти более простой способ задать этот вопрос:

Если моей установке на основе WIX необходимо изменить XML-файл, который выглядит следующим образом:

<a>
  <b/>
</a>

в один, который выглядит так:

<a>
  <c/>
  <b/>
<a/>

Можно ли это сделать без дополнительного действия?

Используя элемент XmlConfig, самое близкое, что я могу получить, это:

<a>
  <b/>
  <c/>
<a/>

Проблема, если я не объяснил, заключается в том, что вставленный элемент c должен предшествовать элементу b, уже находящемуся в файле.


person Daniel Pratt    schedule 06.06.2011    source источник
comment
Я думаю, что может быть проблема с вашим xpath. Как выглядят ваши xpaths в элементах XmlConfig?   -  person Rami A.    schedule 07.06.2011
comment
Вы имеете в виду атрибут ElementPath элемента XmlConfig, да? Согласно документации, это указывает «... модифицируемый родительский элемент...». Таким образом, он ведет себя именно так, как я и ожидал: новые элементы создаются как прямые дочерние элементы указанного родительского элемента. Проблема в том, что у родительского элемента уже есть дочерний контент, и по крайней мере один из новых элементов должен быть вставлен перед этим контентом, а не после (как сейчас).   -  person Daniel Pratt    schedule 07.06.2011


Ответы (1)


Кстати, XmlConfig и XmlFile преобразуются в настраиваемые действия. Можете ли вы начать с другого XML-файла, чтобы можно было добавить все дочерние узлы к родительскому в правильной последовательности? В противном случае вы можете запросить это поведение как запрос новой функции команде WiX здесь: http://sourceforge.net/tracker/?group_id=105970&atid=642717

person Rami A.    schedule 10.06.2011
comment
Да, я знаю, что XmlConfig технически является настраиваемым действием. Я имел в виду, что предпочел бы избежать «настраиваемого» пользовательского действия в пользу встроенных функций WIX. - person Daniel Pratt; 10.06.2011
comment
Настоящий XML-файл, о котором идет речь, на самом деле является файлом другого программного пакета (Microsoft SQL Server Reporting Services), поэтому нет, я не могу практически начать с другого XML-файла. - person Daniel Pratt; 10.06.2011
comment
Это не поддерживается как встроенная функция WiX. Как предлагалось ранее, создайте новый запрос функции для команды WiX. Кроме того, вы можете запросить эту функцию в других сторонних библиотеках расширений wix, таких как msiext.codeplex.com. XmlConfig использует метод IXMLDOMNode::appendChild там, где кажется, что вам потребуется, например, использовать метод IXMLDOMNode::insertBefore. - person Rami A.; 10.06.2011
comment
Что ж, возможно, это не тот ответ, которого я хотел, но «это невозможно» — все же ответ, так что я согласился. - person Daniel Pratt; 11.06.2011