You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
394 lines
9.4 KiB
394 lines
9.4 KiB
;contribute: http://github.com/stfx/innodependencyinstaller |
|
;original article: http://codeproject.com/Articles/20868/NET-Framework-1-1-2-0-3-5-Installer-for-InnoSetup |
|
|
|
;comment out product defines to disable installing them |
|
;#define use_iis |
|
#define use_kb835732 |
|
|
|
#define use_msi20 |
|
#define use_msi31 |
|
#define use_msi45 |
|
|
|
#define use_ie6 |
|
|
|
#define use_dotnetfx11 |
|
#define use_dotnetfx11lp |
|
|
|
#define use_dotnetfx20 |
|
#define use_dotnetfx20lp |
|
|
|
#define use_dotnetfx35 |
|
#define use_dotnetfx35lp |
|
|
|
#define use_dotnetfx40 |
|
#define use_wic |
|
|
|
#define use_dotnetfx45 |
|
#define use_dotnetfx46 |
|
#define use_dotnetfx47 |
|
|
|
#define use_msiproduct |
|
#define use_vc2005 |
|
#define use_vc2008 |
|
#define use_vc2010 |
|
#define use_vc2012 |
|
#define use_vc2013 |
|
#define use_vc2015 |
|
#define use_vc2017 |
|
|
|
;requires dxwebsetup.exe in src dir |
|
;#define use_directxruntime |
|
|
|
#define use_mdac28 |
|
#define use_jet4sp8 |
|
|
|
#define use_sqlcompact35sp2 |
|
|
|
#define use_sql2005express |
|
#define use_sql2008express |
|
|
|
#define MyAppSetupName 'MyProgram' |
|
#define MyAppVersion '6.0' |
|
|
|
[Setup] |
|
AppName={#MyAppSetupName} |
|
AppVersion={#MyAppVersion} |
|
AppVerName={#MyAppSetupName} {#MyAppVersion} |
|
AppCopyright=Copyright © 2007-2017 stfx |
|
VersionInfoVersion={#MyAppVersion} |
|
VersionInfoCompany=stfx |
|
AppPublisher=stfx |
|
;AppPublisherURL=http://... |
|
;AppSupportURL=http://... |
|
;AppUpdatesURL=http://... |
|
OutputBaseFilename={#MyAppSetupName}-{#MyAppVersion} |
|
DefaultGroupName={#MyAppSetupName} |
|
DefaultDirName={pf}\{#MyAppSetupName} |
|
UninstallDisplayIcon={app}\MyProgram.exe |
|
OutputDir=bin |
|
SourceDir=. |
|
AllowNoIcons=yes |
|
;SetupIconFile=MyProgramIcon |
|
SolidCompression=yes |
|
|
|
;MinVersion default value: "0,5.0 (Windows 2000+) if Unicode Inno Setup, else 4.0,4.0 (Windows 95+)" |
|
;MinVersion=0,5.0 |
|
PrivilegesRequired=admin |
|
ArchitecturesAllowed=x86 x64 ia64 |
|
ArchitecturesInstallIn64BitMode=x64 ia64 |
|
|
|
; downloading and installing dependencies will only work if the memo/ready page is enabled (default and current behaviour) |
|
DisableReadyPage=no |
|
DisableReadyMemo=no |
|
|
|
; supported languages |
|
#include "scripts\lang\english.iss" |
|
#include "scripts\lang\german.iss" |
|
#include "scripts\lang\french.iss" |
|
#include "scripts\lang\italian.iss" |
|
#include "scripts\lang\dutch.iss" |
|
|
|
#ifdef UNICODE |
|
#include "scripts\lang\chinese.iss" |
|
#include "scripts\lang\polish.iss" |
|
#include "scripts\lang\russian.iss" |
|
#include "scripts\lang\japanese.iss" |
|
#endif |
|
|
|
[Tasks] |
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" |
|
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked |
|
|
|
[Files] |
|
Source: "src\MyProgram-x64.exe"; DestDir: "{app}"; DestName: "MyProgram.exe"; Check: IsX64 |
|
Source: "src\MyProgram-IA64.exe"; DestDir: "{app}"; DestName: "MyProgram.exe"; Check: IsIA64 |
|
Source: "src\MyProgram.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode |
|
|
|
[Icons] |
|
Name: "{group}\{#MyAppSetupName}"; Filename: "{app}\MyProgram.exe" |
|
Name: "{group}\{cm:UninstallProgram,{#MyAppSetupName}}"; Filename: "{uninstallexe}" |
|
Name: "{commondesktop}\{#MyAppSetupName}"; Filename: "{app}\MyProgram.exe"; Tasks: desktopicon |
|
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppSetupName}"; Filename: "{app}\MyProgram.exe"; Tasks: quicklaunchicon |
|
|
|
[Run] |
|
Filename: "{app}\MyProgram.exe"; Description: "{cm:LaunchProgram,{#MyAppSetupName}}"; Flags: nowait postinstall skipifsilent |
|
|
|
[CustomMessages] |
|
DependenciesDir=MyProgramDependencies |
|
WindowsServicePack=Windows %1 Service Pack %2 |
|
|
|
; shared code for installing the products |
|
#include "scripts\products.iss" |
|
|
|
; helper functions |
|
#include "scripts\products\stringversion.iss" |
|
#include "scripts\products\winversion.iss" |
|
#include "scripts\products\fileversion.iss" |
|
#include "scripts\products\dotnetfxversion.iss" |
|
|
|
; actual products |
|
#ifdef use_iis |
|
#include "scripts\products\iis.iss" |
|
#endif |
|
|
|
#ifdef use_kb835732 |
|
#include "scripts\products\kb835732.iss" |
|
#endif |
|
|
|
#ifdef use_msi20 |
|
#include "scripts\products\msi20.iss" |
|
#endif |
|
#ifdef use_msi31 |
|
#include "scripts\products\msi31.iss" |
|
#endif |
|
#ifdef use_msi45 |
|
#include "scripts\products\msi45.iss" |
|
#endif |
|
|
|
#ifdef use_ie6 |
|
#include "scripts\products\ie6.iss" |
|
#endif |
|
|
|
#ifdef use_dotnetfx11 |
|
#include "scripts\products\dotnetfx11.iss" |
|
#include "scripts\products\dotnetfx11sp1.iss" |
|
#ifdef use_dotnetfx11lp |
|
#include "scripts\products\dotnetfx11lp.iss" |
|
#endif |
|
#endif |
|
|
|
#ifdef use_dotnetfx20 |
|
#include "scripts\products\dotnetfx20.iss" |
|
#include "scripts\products\dotnetfx20sp1.iss" |
|
#include "scripts\products\dotnetfx20sp2.iss" |
|
#ifdef use_dotnetfx20lp |
|
#include "scripts\products\dotnetfx20lp.iss" |
|
#include "scripts\products\dotnetfx20sp1lp.iss" |
|
#include "scripts\products\dotnetfx20sp2lp.iss" |
|
#endif |
|
#endif |
|
|
|
#ifdef use_dotnetfx35 |
|
;#include "scripts\products\dotnetfx35.iss" |
|
#include "scripts\products\dotnetfx35sp1.iss" |
|
#ifdef use_dotnetfx35lp |
|
;#include "scripts\products\dotnetfx35lp.iss" |
|
#include "scripts\products\dotnetfx35sp1lp.iss" |
|
#endif |
|
#endif |
|
|
|
#ifdef use_dotnetfx40 |
|
#include "scripts\products\dotnetfx40client.iss" |
|
#include "scripts\products\dotnetfx40full.iss" |
|
#endif |
|
|
|
#ifdef use_dotnetfx45 |
|
#include "scripts\products\dotnetfx45.iss" |
|
#endif |
|
|
|
#ifdef use_dotnetfx46 |
|
#include "scripts\products\dotnetfx46.iss" |
|
#endif |
|
|
|
#ifdef use_dotnetfx47 |
|
#include "scripts\products\dotnetfx47.iss" |
|
#endif |
|
|
|
#ifdef use_wic |
|
#include "scripts\products\wic.iss" |
|
#endif |
|
|
|
#ifdef use_msiproduct |
|
#include "scripts\products\msiproduct.iss" |
|
#endif |
|
#ifdef use_vc2005 |
|
#include "scripts\products\vcredist2005.iss" |
|
#endif |
|
#ifdef use_vc2008 |
|
#include "scripts\products\vcredist2008.iss" |
|
#endif |
|
#ifdef use_vc2010 |
|
#include "scripts\products\vcredist2010.iss" |
|
#endif |
|
#ifdef use_vc2012 |
|
#include "scripts\products\vcredist2012.iss" |
|
#endif |
|
#ifdef use_vc2013 |
|
#include "scripts\products\vcredist2013.iss" |
|
#endif |
|
#ifdef use_vc2015 |
|
#include "scripts\products\vcredist2015.iss" |
|
#endif |
|
#ifdef use_vc2017 |
|
#include "scripts\products\vcredist2017.iss" |
|
#endif |
|
|
|
#ifdef use_directxruntime |
|
#include "scripts\products\directxruntime.iss" |
|
#endif |
|
|
|
#ifdef use_mdac28 |
|
#include "scripts\products\mdac28.iss" |
|
#endif |
|
#ifdef use_jet4sp8 |
|
#include "scripts\products\jet4sp8.iss" |
|
#endif |
|
|
|
#ifdef use_sqlcompact35sp2 |
|
#include "scripts\products\sqlcompact35sp2.iss" |
|
#endif |
|
|
|
#ifdef use_sql2005express |
|
#include "scripts\products\sql2005express.iss" |
|
#endif |
|
#ifdef use_sql2008express |
|
#include "scripts\products\sql2008express.iss" |
|
#endif |
|
|
|
[Code] |
|
function InitializeSetup(): boolean; |
|
begin |
|
// initialize windows version |
|
initwinversion(); |
|
|
|
#ifdef use_iis |
|
if (not iis()) then exit; |
|
#endif |
|
|
|
#ifdef use_msi20 |
|
msi20('2.0'); // min allowed version is 2.0 |
|
#endif |
|
#ifdef use_msi31 |
|
msi31('3.1'); // min allowed version is 3.1 |
|
#endif |
|
#ifdef use_msi45 |
|
msi45('4.5'); // min allowed version is 4.5 |
|
#endif |
|
#ifdef use_ie6 |
|
ie6('5.0.2919'); // min allowed version is 5.0.2919 |
|
#endif |
|
|
|
#ifdef use_dotnetfx11 |
|
dotnetfx11(); |
|
#ifdef use_dotnetfx11lp |
|
dotnetfx11lp(); |
|
#endif |
|
dotnetfx11sp1(); |
|
#endif |
|
|
|
// install .netfx 2.0 sp2 if possible; if not sp1 if possible; if not .netfx 2.0 |
|
#ifdef use_dotnetfx20 |
|
// check if .netfx 2.0 can be installed on this OS |
|
if not minwinspversion(5, 0, 3) then begin |
|
MsgBox(FmtMessage(CustomMessage('depinstall_missing'), [FmtMessage(CustomMessage('WindowsServicePack'), ['2000', '3'])]), mbError, MB_OK); |
|
exit; |
|
end; |
|
if not minwinspversion(5, 1, 2) then begin |
|
MsgBox(FmtMessage(CustomMessage('depinstall_missing'), [FmtMessage(CustomMessage('WindowsServicePack'), ['XP', '2'])]), mbError, MB_OK); |
|
exit; |
|
end; |
|
|
|
if minwinversion(5, 1) then begin |
|
dotnetfx20sp2(); |
|
#ifdef use_dotnetfx20lp |
|
dotnetfx20sp2lp(); |
|
#endif |
|
end else begin |
|
if minwinversion(5, 0) and minwinspversion(5, 0, 4) then begin |
|
#ifdef use_kb835732 |
|
kb835732(); |
|
#endif |
|
dotnetfx20sp1(); |
|
#ifdef use_dotnetfx20lp |
|
dotnetfx20sp1lp(); |
|
#endif |
|
end else begin |
|
dotnetfx20(); |
|
#ifdef use_dotnetfx20lp |
|
dotnetfx20lp(); |
|
#endif |
|
end; |
|
end; |
|
#endif |
|
|
|
#ifdef use_dotnetfx35 |
|
//dotnetfx35(); |
|
dotnetfx35sp1(); |
|
#ifdef use_dotnetfx35lp |
|
//dotnetfx35lp(); |
|
dotnetfx35sp1lp(); |
|
#endif |
|
#endif |
|
|
|
#ifdef use_wic |
|
wic(); |
|
#endif |
|
|
|
// if no .netfx 4.0 is found, install the client (smallest) |
|
#ifdef use_dotnetfx40 |
|
if (not netfxinstalled(NetFx40Client, '') and not netfxinstalled(NetFx40Full, '')) then |
|
dotnetfx40client(); |
|
#endif |
|
|
|
#ifdef use_dotnetfx45 |
|
dotnetfx45(50); // min allowed version is 4.5.0 |
|
#endif |
|
|
|
#ifdef use_dotnetfx46 |
|
dotnetfx46(50); // min allowed version is 4.5.0 |
|
#endif |
|
|
|
#ifdef use_dotnetfx47 |
|
dotnetfx47(50); // min allowed version is 4.5.0 |
|
#endif |
|
|
|
#ifdef use_vc2005 |
|
vcredist2005('6'); // min allowed version is 6.0 |
|
#endif |
|
#ifdef use_vc2008 |
|
vcredist2008('9'); // min allowed version is 9.0 |
|
#endif |
|
#ifdef use_vc2010 |
|
vcredist2010('10'); // min allowed version is 10.0 |
|
#endif |
|
#ifdef use_vc2012 |
|
vcredist2012('11'); // min allowed version is 11.0 |
|
#endif |
|
#ifdef use_vc2013 |
|
//SetForceX86(true); // force 32-bit install of next products |
|
vcredist2013('12'); // min allowed version is 12.0 |
|
//SetForceX86(false); // disable forced 32-bit install again |
|
#endif |
|
#ifdef use_vc2015 |
|
vcredist2015('14'); // min allowed version is 14.0 |
|
#endif |
|
#ifdef use_vc2017 |
|
vcredist2017('14'); // min allowed version is 14.0 |
|
#endif |
|
|
|
#ifdef use_directxruntime |
|
// extracts included setup file to temp folder so that we don't need to download it |
|
// and always runs directxruntime installer as we don't know how to check if it is required |
|
directxruntime(); |
|
#endif |
|
|
|
#ifdef use_mdac28 |
|
mdac28('2.7'); // min allowed version is 2.7 |
|
#endif |
|
#ifdef use_jet4sp8 |
|
jet4sp8('4.0.8015'); // min allowed version is 4.0.8015 |
|
#endif |
|
|
|
#ifdef use_sqlcompact35sp2 |
|
sqlcompact35sp2(); |
|
#endif |
|
|
|
#ifdef use_sql2005express |
|
sql2005express(); |
|
#endif |
|
#ifdef use_sql2008express |
|
sql2008express(); |
|
#endif |
|
|
|
Result := true; |
|
end; |