【问题标题】:Copy MSI into a directory as part of installation作为安装的一部分,将 MSI 复制到目录中
【发布时间】:2015-06-25 01:42:07
【问题描述】:

我正在使用最新版本的 WiX 来构建我的安装程序项目,并且需要解决我的问题...

当我安装 ProductA.msi 时,我希望 ProductA.msi 将自己复制到一个目录中,命名为 %PROGRAMFILES%\ProductA\Installer- 这样我使用的安装程序就可以在 %PROGRAMFILES%\ProductA\Installer\ProductA.msi

重复使用

有谁知道这是否可行?

【问题讨论】:

  • 您知道 msiexec 已经缓存了安装程序,不是吗?
  • Windows Installer 通常会在 %windir%\Installer 中保留所有安装程序的副本。请参阅superuser.com/questions/473569/… 的回答以找到您的安装程序。
  • @sttaq - 不需要定位 安装程序 - msiexec 接受包 ID 作为 @987654323 路径的替代方案是有原因的@.
  • 不确定为什么这被否决...感谢您的回答-我需要能够访问安装程序,以便远程连接的客户端可以获得已安装内容的副本。
  • @Damien_The_Unbeliever 感谢您指出这一点。

标签: wix windows-installer


【解决方案1】:

我不确定你喜欢做什么。

但是: 您可以使用 robocopy 编写一个 .bat 文件,将 msi 及其文件复制到目标位置,然后启动 .msi。

【讨论】:

    【解决方案2】:

    我需要做同样的事情并最终在一个 powershell 脚本中作为自定义操作折腾。 WiX 具有指向正在运行的 .msi 的 [OriginalDatabase] 属性。我只是将它作为参数传递给一个快速脚本,它就可以工作。

    param(
    [string]$MsiLocation
    )
    
    echo "Creating directory"
    md -Force "C:\directory"
    
    echo "Removing current files"
    rm "C:\directory\*"
    
    echo "Copying in new .msi"
    cp "$MsiLocation" "C:\directory\"
    

    它并不优雅,但它可以完成工作。您可以查看this answer了解更多详情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多