Batch file 在Wix中安装msi后自动运行.bat文件

Batch file 在Wix中安装msi后自动运行.bat文件,batch-file,wix,windows-installer,wix3.9,Batch File,Wix,Windows Installer,Wix3.9,我需要在Wix中安装.msi之后运行.bat文件。我已经从Wix安装项目创建了这个.msi 在.bat文件中,我编写了编辑etc/hosts文件的脚本,并根据我的应用程序需要将一些字体安装到windows机器中 请帮我解决我的问题。 谢谢。运行.BAT是可能的,但这实际上是为了设置java类路径和启动java应用程序。不要对机器进行其他更改 您的设计有几个问题 1) UI序列不应以提升的权限运行,因此.BAT将无权执行您想要执行的操作 2) 更改是在安装事务之外进行的,因此不支持回滚或卸载 3)

我需要在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="&quot;[SystemFolder]cmd.exe&quot; /C &quot;[INSTALLDIR]mybatchfile.bat&quot;"
                  Directory="INSTALLDIR"/>  

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

处理文件修改和安装字体应由安装程序@Morten Frederiksen完成,谢谢您的回答。如果您能让我知道如何使用Wix处理文件修改和安装字体,那就太好了。顺便问一下,在Wix中安装msi后是否可以自动运行.bat文件?如果可以,如何运行?你知道吗?克里斯托弗·派特,谢谢你的回答和建议。我将尽力处理所有这些问题。