在 WiX 中编辑打包文件
Posted
技术标签:
【中文标题】在 WiX 中编辑打包文件【英文标题】:Editing packaged file in WiX 【发布时间】:2016-02-08 09:20:19 【问题描述】:这里是 WiX 新手。我很好奇这种方法是否可以使用 WiX。
问题陈述...
我正在打包一些我想要针对用户在运行时输入的参数执行的 SQL 文件。想想连接字符串信息。用户可以输入的参数之一是他们希望安装数据库的目录。
当前解决方案(不起作用).....
为此,我使用热量打包这些文件。当它吸入这些文件时,我的一个 SQL 文件中有一些标记,自定义操作查找这些标记基本上是在文件中进行查找替换。问题在于,虽然它确实在进行查找替换,但它是针对吸收热量的源文件而不是 .msi 文件中存在的文件进行的。
问题 1...
在 WiX 工作流程中,有没有一种方法可以通过自定义操作对存储在 .cab 或 .msi 文件中的文件进行处理?如果可能的话,有人可以给我举个例子吗?
问题 2 。 . .
如果问题 1 不可能,我的另一个想法是将查找替换 SQL 片段和文件安装片段分解为单独的 msi 文件。所以第一步是通过一个 msi 将我需要的所有文件分解到安装目录中。下一个 msi 将执行 SQL 片段,因为此时文件系统上存在文件供我进行编辑。这听起来像是解决问题的明智方法吗?很可能我正在尝试解决 WiX 而不是这里的 WiX。
当前代码sn-ps
<Product>
<!-- This is where this will be installed-->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLFOLDER" Name="ZOLLData">
<Directory Id="SQLINSTALLFOLDER" Name="Sql" />
</Directory>
</Directory>
<!-- CUSTOM ACTION DEFINITIONS-->
<CustomAction Id="FindReplaceZEDSTextCA"
Return="check"
BinaryKey="GemstoneInPremiseInstallerCustomActions.CA.dll"
Execute="immediate"
DllEntry="FindReplaceText" />
<!-- Database Information-->
<util:User Id="SQLUser" Name="[SQLUSERNAME]" Password="[SQLPASSWORD]"/>
<sql:SqlDatabase Id="MasterDatabase" Database="master"
Server="[SQLSERVERNAME]"
User="SQLUser"/>
<InstallUISequence>
<Show Dialog="SqlConnectionDlg" After="CostFinalize" />
<Show Dialog="ProgressDlgCustom" After="SqlConnectionDlg"/>
</InstallUISequence>
<InstallExecuteSequence>
<Custom Action="FindReplaceZEDSTextCA" After="InstallFiles">
</Custom>
</InstallExecuteSequence>
</Product>
<Fragment>
<DirectoryRef Id="INSTALLFOLDER" />
</Fragment>
<Fragment>
<ComponentGroup Id="SqlComponents">
<Component Id="CreateDatabase.sql" Directory="INSTALLFOLDER" Guid="6A2C6088-9302-451C-A01B-02D618D4AC27">
</Component>
</ComponentGroup>
</Fragment>
提前致谢。
【问题讨论】:
您何时安排自定义操作?将文件部署到目标计算机后,应运行自定义操作。应该在 InstallExecuteSequence 表中的安装文件操作之后运行。 我的自定义操作安排在 FilesInstalled 之后,但我认为问题可能是即使我正在等待该事件,我也看不到磁盘上的文件。就像它解压缩文件但实际上并没有写入磁盘一样。执行周期中是否有需要等待的事件? 【参考方案1】:问题是我的自定义操作设置为 Execute="immediate"。这应该是 Execute="deferred"。
【讨论】:
以上是关于在 WiX 中编辑打包文件的主要内容,如果未能解决你的问题,请参考以下文章