wix install xml文件,编辑文件并复制到另一个位置

时间:2015-09-01 10:15:00

标签: wix

我正在尝试安装XML文件(Tomcat上下文文件)并使用WiX将文件复制到Tomcat \ config \ Catalina \中的另一个位置。 在将文件复制到Tomcat之前,我想在Context xml中编辑一些值。在这里,我使用WixUtilExtension中的标记修改了xml。

以下是我完成的内容:

    <SetProperty Id="CopyLocation" Value="[%CATALINA_HOME]\conf\Catalina\" Before="AppSearch" Sequence="execute"/>     
    <DirectoryRef Id="INSTALLDIR">
        <Directory Id="dirA99A3925C98F7E949CF98F783959A0E0" Name="MyInstallFolder">
            <Component Id="cmp318E197D1FB960F5622BEB6879276359" Guid="{FFF02817-FA29-40B7-927A-E943C08A8774}">
              <File Id="fil6674D3AD50416393E3C992B211173485" KeyPath="yes" Source="$(var.installfolder)\MyContext.xml" />          

                 <util:XmlFile Id="DocBase" Action="setValue" Permanent="yes" File="[#fil6674D3AD50416393E3C992B211173485]"
            ElementPath="//Context" Name="docBase"
            Value="[INSTALLDIR]InstallFolder" SelectionLanguage="XPath" Sequence="1"/>

              <CopyFile Id="Copy_File" DestinationProperty="CopyLocation" DestinationName="MyContext.xml" FileId="fil6674D3AD50416393E3C992B211173485"/>          
            </Component>
        </Directory>
    </DirectoryRef>

以下是XML示例:

    <Context path="/XERService" docBase="NoValue">
    </Context>

问题是我能够修改安装到安装路径的文件,但复制到Tomcat的文件没有更改。

1 个答案:

答案 0 :(得分:2)

这是因为DuplicateFiles操作的默认序列(映射到CopyFile的MSI操作)发生在SchedXmlFiles操作之前。您应该可以通过指定以下内容来覆盖它:

<InstallExecuteSequence>
  <Custom Action="SchedXmlFile" Before="DuplicateFiles" />
</InstallExecuteSequence>