在扩展到temp时,iexpress不会维护文件夹结构

时间:2015-07-08 17:42:22

标签: iexpress

环境: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%=

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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

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