【问题标题】:Run .bat file automatically after msi installation in Wix在 Wix 中安装 msi 后自动运行 .bat 文件
【发布时间】:2015-05-15 06:08:30
【问题描述】:

我需要在 Wix 中安装 .msi 后运行一个 .bat 文件。我从 Wix 安装项目创建了这个 .msi。

在 .bat 文件中,我编写了脚本来编辑 etc/hosts 文件并根据我的应用程序需要将一些字体安装到 Windows 机器中。

请帮我解决我的问题。 谢谢。

【问题讨论】:

  • 处理文件修改和安装字体应由安装程序完成
  • @ Morten Frederiksen,感谢您的回答。如果您能告诉我如何使用 Wix 通过安装程序处理文件修改和安装字体,那就太好了。顺便说一句,是否可以在 Wix 中安装 msi 后自动运行 .bat 文件,如果是,那么如何?你有什么想法吗?

标签: batch-file wix windows-installer wix3.9


【解决方案1】:

可以运行 .BAT 文件,但这实际上是为了设置 java 类路径和启动 java 应用程序。不要对机器进行额外的更改。

您的设计存在几个问题。

1) UI 序列不应以提升的权限运行,因此 .BAT 将无权执行您想做的事情

2) 更改是在安装事务之外进行的,因此不支持回滚或卸载

3) 更改是由不支持日志记录或错误处理的脚本进行的。它会很脆弱。

4) 由于更改未在 Windows Intaller 表中表达,因此您失去了 MSI 提供的表现力和可转换性。

.BAT 应该被重构并可能被淘汰。 “我如何 xyz?”它所做的每一件事(安装字体、修改文件......)的问题都应该是他们自己的 StackOverflow 问题。

【讨论】:

  • Christopher Painter,感谢您的回答和建议。我会尽力解决所有这些问题。
【解决方案2】:
    <CustomAction Id="RunBatch"                 
                  Execute="deferred" 
                  Return="ignore"             
                  Impersonate="no"              
                  ExeCommand="&quot;[SystemFolder]cmd.exe&quot; /C &quot;[INSTALLDIR]mybatchfile.bat&quot;"
                  Directory="INSTALLDIR"/>  

<InstallExecuteSequence>
  <Custom Action="RunBatch" Before="InstallFinalize"/>
</InstallExecuteSequence>  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多