Notepad++ official repository
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

;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;