我有一个wix安装程序,它将安装一个XML文件,然后进行修改.安装工作很棒.今天,我需要为这个XML文件添加几个节点.所以我修改了原始文件,然后添加了一些额外的指令给wix来分配这些项目值.
好吧,我每次都说它无法找到节点时出错.我查看并查看它在目录中的文件,它仍然具有没有该节点的旧文件.如何告诉它先替换XML文件然后修改它?我不想使用"CreateElement",因为我不知道如果它已经存在,如何不创建元素(没有尝试过,所以也许它可以工作).此外,我希望我的XML文件是配置的定义.
这是我的XML示例:
<Component Id="MyProgExeConfigComponent" Guid="*">
<File
Id="MyProgExeConfig"
Name="MyProg.exe.config"
DiskId="1"
Source="../Published/MyProg/MyProg.exe.config"
PatchWholeFile="yes"
KeyPath="yes"/>
<util:XmlFile
Id="MyProgExeConfigUser"
Action="setValue"
Permanent="yes"
File="[INSTALLLOCATION]\MyProg.exe.config"
ElementPath="/configuration/appSettings/add[\[]@key='UserName'[\]]"
Name="value"
Value="[USER]"/>
<util:XmlFile
Id="MyProgExeConfigPassword"
Action="setValue"
Permanent="yes"
File="[INSTALLLOCATION]\MyProg.exe.config"
ElementPath="/configuration/appSettings/add[\[]@key='Password'[\]]"
Name="value"
Value="[PASSWORD]" />
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Windows Installer可能没有覆盖该文件,因为您有INSTALLMODE = omus并且XML的创建和修改日期不同.
XML文件是它自己组件的密钥文件吗?如果是这样,请尝试使用File @ DefaultVersion属性来诱使Windows Installer认为新文件具有版本#(我们在谷歌搜索时称之为"版本说谎"),因此胜过非版本化文件.您的文件将被覆盖然后您可以从那里应用XML更新.
| 归档时间: |
|
| 查看次数: |
3066 次 |
| 最近记录: |