2

环境:Windows 7 64、Visual Studio 2013

在运行 iexpress 之前,我有一个引用主 msi 和先决条件 msi (SlimDX) 的设置文件。当 Visual Studio 安装程序添加先决条件时,它会将 prereq msi 添加到 setup.exe 旁边的子文件夹中。

现在我使用 iexpress.exe 来合并 setup.exe 和 2 个 msi 文件。当 iexpress 将 3 个文件解压缩到临时文件夹时,可再发行文件不在子文件夹中,尽管安装文件仍期望它在子文件夹中。

提取时如何强制 iexpress 维护文件夹结构?或者,在向 Visual Studio 安装程序添加先决条件时,如何强制它将依赖项放置在与 setup.exe 相同的文件夹级别?

SDE 文件

[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=0
HideExtractAnimation=0
UseLongFileName=1
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=I
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
[Strings]
InstallPrompt=
DisplayLicense=
FinishMessage=
TargetName=C:\Jobs\NME\Installer\Release\NMEInstaller.EXE
FriendlyName=NME Installer
AppLaunched=setup.exe
PostInstallCmd=<None>
AdminQuietInstCmd=
UserQuietInstCmd=
FILE0="NME Installer.msi"
FILE1="setup.exe"
FILE2="SlimDXRedistributable\SlimDX Runtime .NET 4.0 x64 (January 2012).msi"
[SourceFiles]
SourceFiles0=C:\Jobs\NME\Installer\Release\
SourceFiles1=C:\Jobs\NME\Installer\Release\SlimDXRedistributable\
[SourceFiles0]
%FILE0%=
%FILE1%=
[SourceFiles1]
%FILE2%=
4

2 回答 2

1

我的理解是,MSFT 不再推荐或支持使用 IEXpress.exe,因为它包含许多从未修补过的安全漏洞。您确实应该考虑切换到适当的引导程序,例如 Windows Installer XML 的刻录功能。它更容易实现并且功能更强大。

于 2015-07-08T19:25:48.287 回答
0

我之前回答过一个类似的问题:

本质上,您想在执行实际之前使用批处理文件(或其他东西)将文件复制或移动到您需要的位置setup.exe,例如:

@echo off
mkdir SlimDXRedistributable
move /y "SlimDX Runtime .NET 4.0 x64 (January 2012).msi" SlimDXRedistributable
setup.exe

请记住,如果您使用批处理文件来调用它,例如:

cmd /c myscript.bat

(如果您只是放置批处理文件,它将通过 old 运行command.com,这是次优的。)

于 2015-09-12T09:47:43.187 回答