在 Wix 中安装 .msi 后,我需要运行一个 .bat 文件。我从 Wix 安装项目创建了这个 .msi。
在 .bat 文件中,我编写了脚本来编辑 etc/hosts 文件并根据我的应用程序需要将一些字体安装到 Windows 机器中。
请帮我解决我的问题。谢谢。
在 Wix 中安装 .msi 后,我需要运行一个 .bat 文件。我从 Wix 安装项目创建了这个 .msi。
在 .bat 文件中,我编写了脚本来编辑 etc/hosts 文件并根据我的应用程序需要将一些字体安装到 Windows 机器中。
请帮我解决我的问题。谢谢。
可以运行 .BAT 文件,但这实际上是为了做一些事情,比如设置一个 java 类路径并启动一个 java 应用程序。不要对机器进行额外的更改。
您的设计存在几个问题。
1) UI 序列不应以提升的权限运行,因此 .BAT 将无权执行您想要执行的操作
2) 更改是在安装事务之外进行的,因此不支持回滚或卸载
3) 更改是由不支持日志记录或错误处理的脚本进行的。会很脆弱。
4) 因为更改没有在 Windows Intaller 表中表达,所以您失去了 MSI 提供的表现力和可转换性。
.BAT 应该被重构并可能被淘汰。“我如何 xyz?” 它所做的每一件事(安装字体,修改文件......)的问题都应该是他们自己的 StackOverflow 问题。
<CustomAction Id="RunBatch"
Execute="deferred"
Return="ignore"
Impersonate="no"
ExeCommand=""[SystemFolder]cmd.exe" /C "[INSTALLDIR]mybatchfile.bat""
Directory="INSTALLDIR"/>
<InstallExecuteSequence>
<Custom Action="RunBatch" Before="InstallFinalize"/>
</InstallExecuteSequence>