2015-05-13 4 views
1

Я пытаюсь записать значение в XML-файл во время установки, это значение получается из текстового поля, которое пользователь заполняет на этапе установки. В моем файле GUI для установщика Я имею следующий EditField:Wix- Невозможно записать файл XML при использовании имени свойства как значения

<Control Id="LogEdit" Type="Edit" X="45" Y="155" Width="100" Height="18" Property="LOGVALUE" Text="{80}" /> 

В моих Product.WXS я добавил новое свойство, как показано ниже:

<Property Id="LOGVALUE" Secure="yes"/> 
    <SetProperty Id="LOGVALUE" Value="" After="AppSearch">LogValue</SetProperty> 

И тогда я создал новый компонент как показано ниже:

<Component Id="LogComponent" 
    Guid="87F682A6-1CC0-4E2D-9882-25D765478F94" Directory='ContentDir' NeverOverwrite='yes' Permanent='yes'> 
    <File Id="Logconfig" 
     DiskId="1" 
     Name="log.xml" 
     Source="..\bin\log.xml" 
     Vital="yes" 
     KeyPath="yes" /> 

    <util:XmlFile Id="SetKey3" 
       Action="setValue" 
       ElementPath="/log/appender[\[]@type='log4net.Appender.RollingFileAppender'[\]]/file/@value" 
       Value="[LOGVALUE]" 
       File="[#Logconfig]" 
       SelectionLanguage="XPath" 
       Sequence="1" /> 

</Component> 

Я также добавил ссылку на этот компонент в. Проблема после установки ничего не будет записано в файл XML, Однако, если я заменю Value = «[LOGVALUE]» с некоторыми закодированных значений, как Value = «TEST» в Util: XMLFILE раздел работает , Любые идеи, из которых исходит ошибка?

ответ

1

Вы устанавливаете значение LOGVALUE в значение «» в пределах приведенного ниже свойства. Я считаю, что он разбивает его, устанавливая значение в ничто, устанавливая его в «[LOGVALUE]» или не устанавливая его вообще как пользовательский интерфейс устанавливает значение свойства

<SetProperty Id="LOGVALUE" Value="" After="AppSearch">LogValue</SetProperty> 
+0

он работает с благодарностью :) Поразительно я пишу в другой файл XML в одних и тех же Product.WXS и я устанавливаю значение «» для области, и она работает, как ожидалось, но для этот он не работает, если я не установил значение = "[LOGVALUE]". – Benjamin