在捆绑链执行结束时运行 PowerShell 脚本

Posted

技术标签:

【中文标题】在捆绑链执行结束时运行 PowerShell 脚本【英文标题】:Run PowerShell script at end of bundle chain execution 【发布时间】:2021-04-06 10:39:46 【问题描述】:

我正在使用 Wix Bootstrapper 创建一个 exe 安装程序。

在捆绑链中,我正在安装一些 exe 文件。

最后我想执行一个 PowerShell 脚本来做一些额外的任务。怎么可能

这是捆绑链,我已经提到了我想在哪里执行 PowerShell 脚本。

   <Bundle Name="sample" Version="0.0.0.0" Manufacturer="$(var.Manufacturer)" UpgradeCode="fsfsddssdsdsd">
        <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
        <Chain>

            <ExePackage
                SourceFile="something.exe"
                InstallCommand="/install /quiet /norestart"
                PerMachine="yes" >
            </ExePackage>

            <ExePackage
                SourceFile="anything.exe"
                InstallCommand="/install /quiet /norestart"
                PerMachine="yes" >
            </ExePackage>


            **EXECUTE POWERSHELL SCRIPT HERE**
            
        </Chain>
    </Bundle>

提前感谢您的帮助

【问题讨论】:

【参考方案1】:

我现在可以看到两个选项:

    创建可以处理所有工作的 msi。

您可以按照here 的描述运行 powershell 脚本

    创建您自己的引导程序应用程序,该应用程序将在安装所有 exe 后运行脚本。我记得这个案子有一个特别的活动。

在这里你可以找到great article about it (C#)。你也可以很容易地找到如何使用 C++。

【讨论】:

MSI 不是一个选项 您能否详细说明选项 2? 我发布了link,并逐步指导如何实现它。只需遵循它)如果您在实施过程中遇到一些问题,我可以提供帮助。但对我来说,msi 看起来更容易实现。

以上是关于在捆绑链执行结束时运行 PowerShell 脚本的主要内容,如果未能解决你的问题,请参考以下文章

PowerShell执行脚本时“系统上禁止运行脚本”问题解决

用于在链接服务器上执行 DDL 语句的 Powershell 脚本 - 使用 SSIS 运行时不起作用

执行 powershell 脚本时出错

批处理脚本运行良好,但通过 PowerShell Remoting 执行时失败

Powershell 脚本不通过计划任务运行

自动化批处理文件和PowerShell脚本执行