Installation 从提取的安装文件创建MSI

Installation 从提取的安装文件创建MSI,installation,windows-installer,installshield,Installation,Windows Installer,Installshield,我有一个带有第三方安装程序的文件夹,该文件夹包含setup.exe及其旁边的所有CAB文件(以及许多相关文件夹) 我希望能够将这个第三方安装程序重新打包成我可以在我的主应用程序安装程序中作为先决条件(或作为链接msi包)使用的东西 我不仅要在客户机上提取/复制这些文件,还要运行安装程序 是否可以使用Installshield从所有这些文件创建MSI?我似乎找不到一种项目类型来解决这个问题。我是InstallShield noob,正在寻找类似问题的帮助,但对于您的需要,基本的MSI项目应该足够

我有一个带有第三方安装程序的文件夹,该文件夹包含setup.exe及其旁边的所有CAB文件(以及许多相关文件夹)

我希望能够将这个第三方安装程序重新打包成我可以在我的主应用程序安装程序中作为先决条件(或作为链接msi包)使用的东西

我不仅要在客户机上提取/复制这些文件,还要运行安装程序


是否可以使用Installshield从所有这些文件创建MSI?我似乎找不到一种项目类型来解决这个问题。

我是InstallShield noob,正在寻找类似问题的帮助,但对于您的需要,基本的MSI项目应该足够了

如果您使用的是Project Assistant向导,在进入“应用程序文件”部分时,您可以将各种文件夹和setup.exe拖放到向导中的INSTALLDIR文件夹中,我想差不多就是这样


我还记得我在创建SQL Server的非安装MSI时遇到的其他问题,Install Shield将自动识别您的setup.exe,并在运行.MSI时运行它。

问题场景:您的场景是什么

  • 您是否正在接管旧设置的处理和更新,并需要将其转换为正确的格式
  • 您正在尝试重新打包第三方供应商setup.exe吗
  • 你是想弄到出租车里的文件吗?或者只是提取文件,以便以其他方式重新打包。出于某种原因
  • 您是否试图在静默模式下尽可能轻松可靠地安装整个shebang
  • 还有其他问题吗

静默运行?:如果您只需要静默安装,则大多数
setup.exe
包装器都有命令行开关,可以让您执行此操作,但用于创建
setup.exe
文件的每个工具都有不同的命令行开关。Installshield的setup.exe文件需要静默响应文件,其他工具则不同。和

记录响应文件:

Setup.exe /r /f1”c:\temp\my-answer-file.iss”
基本静默安装:

Setup.exe /s /f1”c:\temp\my-answer-file.iss”
如果
setup.exe
是MSI的包装,并且您有一个分发系统来分发必备组件,那么如果您在公司环境中,并且使用MSI中的标准功能以静默方式运行,则通常最好提取MSI(msiexec.exe的
/QN
开关):

快速参数解释:

/I = run install sequence
/QN = run completely silently
/L*V "C:\msilog.log" = verbose logging
TRANSFORMS="C:\1031.mst;C:\My.mst" = Apply transforms 1031.mst and My.mst (see below).

文件提取?:从
setup.exe中提取文件可能很有挑战性,也可能很容易。这取决于它是用什么构建的,这几乎可以是“任何东西”-从已建立的部署工具到“任何人”制作的专有软件。要从各种类型的
setup.exe
提取文件,您可以在此答案中找到详细信息:

  • (关于该主题的链接过多)
  • 还有迈克尔·厄尔曼的“动手”:
基本上,您只对Installshield套件可执行文件使用
setup.exe/stage\u
,对基本MSI和Installscript MSI可执行文件使用
setup.exe/a
,对旧版Installscript可执行文件使用
setup.exe/s/extract\u all
。以下说明

MSI导入:如果您设法提取文件,并且在那里看到MSI文件, 然后您应该能够在中导入或打开该MSI文件 Installshield(或其他部署工具)


我将尝试提取选项的快速“简短列表”(不确定这是否是您真正需要的):

已经是一个MSI?:你知道
setup.exe
包含什么吗?从技术上讲,它可能已经是一个包含MSI文件的包装,也可能是一些旧版部署工具的输出,而根本不是Windows安装程序。让我们列出几个选项:

  • :尝试从命令提示符执行
    setup.exe/a
    以查看是否出现“提取文件”对话框。如果是,请指定输出位置并提取所有文件。这表示封装在setup.exe中的MSI安装程序
  • Installscript安装程序:尝试从命令提示符执行
    setup.exe/s/extract\u all
    ,查看是否可以从CAB中提取文件。这是用于Installscript安装的。或者也可以尝试
    /extract\u all:[path]
  • 套件设置:尝试从命令提示符执行
    setup.exe/stage\u
  • :尝试执行
    setup.exe/提取“C:\My work”
    setup.exe/x
  • :在命令提示符下尝试以下操作:
    dark.exe-x outputfolder setup.exe
    。只能使用dark.exe工具从框架本身提取WiX setup.exe文件。换句话说,您需要安装WiX才能提取WiX setup.exe(从现在开始)
  • :Wise不再上市,但仍有许多较旧的设置。您可以尝试使用
    setup.exe/X[path]
    提取文件
  • :从旧式、旧版setup.exe安装程序创建MSI包的一种方法是,通过使用一个监控setup.exe运行时对系统所做更改的“捕获”对系统所做的更改
  • 不可能涵盖所有不同类型的setup.exe文件。它们可能具有各种不同的命令行开关..(,,等..)

    Inno Setup
    这样的常用工具似乎使提取变得很困难(我没有尝试,由virustotal运行)。而
    NSIS
    似乎使用标准存档软件可以打开的常规存档

    /I = run install sequence
    /QN = run completely silently
    /L*V "C:\msilog.log" = verbose logging
    TRANSFORMS="C:\1031.mst;C:\My.mst" = Apply transforms 1031.mst and My.mst (see below).
    
    setup.exe /a