My InnoSetup Script необходимо установить VC-распространяемые компоненты (vcredist_x86.exe), но также регистрирует OCX, полагающийся на пакет redist. Я не смог установить пакет до вызова regsrv32, поэтому в девственной системе всегда возникает ошибка «Ошибка RegSrv32 с кодом выхода 0x1» (который я мог бы игнорировать и снова запустить настройку, чтобы правильно зарегистрировать OCX). Как я могу убедиться, что пакет redist установлен до регистрации?InnoSetup Script, устанавливающий VC-дистрибутивы и регистрацию VC OCX, в результате чего «RegSrv32 не удалось с кодом выхода 0x1»
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
[Setup]
AppName=MyApp
AppVerName=MyApp v1.0
DiskSpanning=no
AppPublisher=me
AppPublisherURL=http://www.example.com
AppSupportURL=http://www.example.com
AppUpdatesURL=http://www.example.com
DefaultDirName={pf}\MyApp
UsePreviousAppDir=yes
DefaultGroupName=MyApp
OutputBaseFilename=Setup
OutputDir=.\MyAppSetup
MinVersion=5.0
[Tasks]
Name: desktopicon; Description: Create a &desktop icon; GroupDescription: Additional icons:; MinVersion: 4,4
[Files]
;Source: "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvcm90.dll"; DestDir: {app};
;Source: "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvcp90.dll"; DestDir: {app};
;Source: "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvcr90.dll"; DestDir: {app};
;Source: "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.ATL\atl90.dll"; DestDir: {app};
;Source: "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.MFC\mfc90.dll"; DestDir: {app};
;Source: "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.MFCLOC\MFC90DEU.dll"; DestDir: {app};
;Source: "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.OPENMP\vcomp90.dll"; DestDir: {app};
Source: .\SystemFiles\vcredist_x86.exe; DestDir: {tmp}; Flags: deleteafterinstall;
;-> [Run] !!
Source: .\Release\MyApp.exe; DestDir: {app}; Flags: ignoreversion
Source: .\Release\MyAppHelper.ocx; DestDir: {app}; Flags: regserver restartreplace
[Icons]
Name: {group}\EasyCash&Tax; Filename: {app}\MyApp.exe
Name: {userdesktop}\EasyCash&Tax; Filename: {app}\MyApp.exe; MinVersion: 4,4; Tasks: desktopicon
[Run]
Filename: {tmp}\vcredist_x86.exe; Parameters: "/q:a /c:""VCREDI~3.EXE /q:a /c:""""msiexec /i vcredist.msi /qn"""" """; Flags: runhidden shellexec waituntilterminated;
Filename: {app}\MyApp.exe; Description: Launch MyApp; Flags: nowait postinstall skipifsilent
код [Run] '' раздел обрабатывается после '[Files]'. Переместите повторную установку в функцию события PrepareToInstall. – TLama
Но мне нужно временно установить файл на {tmp} \ vcredist_x86.exe для его запуска. Можете ли вы предоставить рабочий код в ответе? Это было бы круто. – thomiel
Я думаю, что это может привести к запуску http://pastebin.com/33ZebFsF. – TLama