|
Thanks stfx, that fixed it. Do you think any conditional statements can be put into this script so that users won't have to change this manually depending on what version of inno they installed. I appreciate that this is a new issue since 5.35. Thanks.
|
|
|
|
|
Hello,
First of all, thank you for the nice work.
I'm new with INNO Setup, so all this might look stupid ... but i have some issues with the installer though. My dependencies (msi31.exe and dotnetfx35.exe) fail to install. I get no error message, the setup just skip them.
I did a little check and it might be a problem with the PrepareToInstall() function (where the InstallProducts() function it's called). I haven't found any call for PrepareToInstall().
So i called PrepareToInstall inside NextButtonClick and it does start msi31.exe but another problem appear. It seems that dotnetfx35.exe starts before msi31.exe finish it's installation and of course it fails (since dotnetfx35.exe require Windows installer 3.1).
I'll keep working on it, but a little push in the right direction will be much appreciated ... because i'm not really sure about what i'm doing .
P.S. The /qb parameter doesn't work for Windows installer 3.1. So for the moment i'm using /quiet.
|
|
|
|
|
Message Closed
modified 23-Dec-20 12:42pm.
|
|
|
|
|
I partially solved the problem, it was mainly because of my INNO Setup version. It was older than 5.3.2 where this PrepareToInstall was added as an event function.
After the upgrade to the last version, if i remove the manual call for PrepareToInstall, it's installing msi31 correctly but fail to install dotnetfx35 (the order it's exactly like you said). I kind of solved that too by calling PrepareToInstall again inside the NextButtonClick function. I don't know why i have to call PrepareToInstall again to make it work, so i'll keep checking ... but for the moment it's the only solution i found.
And yes, the original setup.iss have the same problem ... it's installing msi31, but then fail on dotnetfx35.
|
|
|
|
|
You have to change in products.iss "function PrepareToInstall: String;" to "function PrepareToInstall(var NeedsRestart: Boolean): String;" and it works fine!
|
|
|
|
|
Hello,
I think there are wrong options for installing .NET 2.0 + .NET 2.0 SP1 (see dotnetfx20.iss and dotnetfx20sp1.iss).
I had some issues during installation and recognized that there are parameters which do not exist (that’s what the syntax dialog said).
I replace it with "/qb /norestart /lang:ENU" and everything works fine.
Alex
|
|
|
|
|
|
Thank you very much for your script. I love it!
But I have some questions regarding the "offline files".
1. Why do you/we have to rename the files (org. "NetFx20SP1_x86.exe" -> "dotnetfx20sp1.exe")? This seems to be unnecessary because these files are neutral for different languages.
2. Do I have any possibilies to put files for different platforms in the dependency folder? For example NetFx20SP1_ia64.exe, NetFx20SP1_x64.exe and NetFx20SP1_x86.exe and your script selects the right one? Or do I have to build 3 setups for each platform?
Greetings from munich
Alex
|
|
|
|
|
Hello,
Please let me know if the followig is true:
If my program only requires .net framework 3.5 with sp1,
then I should only need the following lines in the 'include' section:
<
#include "scripts\products.iss"
#include "scripts\products\winversion.iss"
#include "scripts\products\fileversion.iss"
#include "scripts\products\msi31.iss"
#include "scripts\products\dotnetfx35sp1.iss"
#include "scripts\products\dotnetfx35sp1lp.iss"
>
and the code section should look like this:
<
[Code]
function InitializeSetup(): Boolean;
begin
//init windows version
initwinversion();
msi31('3.0');
dotnetfx35sp1();
dotnetfx35sp1lp();
Result := true;
end;
>
In other words, to install dotnetfx35sp1, i do not need to install any previous version of the framework, and to install msi31, I do not need to install msi20.
thank you,
pjr
|
|
|
|
|
Message Closed
modified 23-Dec-20 12:42pm.
|
|
|
|
|
Thank you stfx!
This might be a dumb question but here it is: in my 'simple' setup scenario, what is the purpose of checking for the Windows version?
Thanks,
pjr
|
|
|
|
|
Message Closed
modified 23-Dec-20 12:42pm.
|
|
|
|
|
Makes sense stfx. thank you.
pjr
|
|
|
|
|
I keep getting this error now, it never used to happen with the last version. Please help.
Anthony
Check out my desktop conversion software for Windows -
www.universalconverter.net
|
|
|
|
|
Message Closed
modified 23-Dec-20 12:43pm.
|
|
|
|
|
Thanks, it worked! but i now have a different problem
---------------------------
Compiler Error
---------------------------
File: winversion.iss
Line 3:
Column 2:
Duplicate identifier 'WindowsVersion'
Any help will be appreciated,
Anthony
Check out my desktop conversion software for Windows -
www.universalconverter.net
|
|
|
|
|
Message Closed
modified 23-Dec-20 12:43pm.
|
|
|
|
|
Erm, I couldn't locate the other WindowsVersion variable, so I decided to change the "WindowsVersion" variable in winversion.iss to "WindowsVersion2". Theoretically this should solve the problem, but yet when I compiled my script it said "Duplicate identifier WindowsVersion2". Very strange, because I'm 100% certain that I do not have other variables called WindowsVersion2.
Anthony
Check out my desktop conversion software for Windows -
www.universalconverter.net
|
|
|
|
|
Ahh, sorry my fault! I had included winversion.iss and fileversion.iss twice by mistake.
Sorry for the inconvenience, and thanks for your help.
Anthony.
Check out my desktop conversion software for Windows -
www.universalconverter.net
|
|
|
|
|
Are you going to create an implementation for such cases as
- connection is broken and try to restore it for x times
- parralel downloading to gain more high speed?
|
|
|
|
|
Hi stfx,
This script was a life-saver for me!
I wanted to thank you by offering you a free license of the software I wrote and deployed with this.
The software is a unique way of "Getting Things Done", called HabitShaper.
If you're interested, pm me!
Thanks again for sharing this!
Adriano
|
|
|
|
|
Hello
i want to use innosetup to install my window application with .net 2.0 framework.
but i am not able to use it.i have my application setup file named as "setup.exe" and "Flow Demo.msi"
my application dependencies onle .net framework 2.0
plz tell me hoe i use innosetup
Thanks in advanced
Raj
|
|
|
|
|
This is a great resource for fans of Inno Setup. Thanks for posting it.
I have created additional scripts for:
- Visual Studio Tools for Office (VSTO) 3.0 SP1
- Primary interop assemblies for Office 2007
which I require for an Excel AddIn. Is there any way to contribute these to the community?
Phil
|
|
|
|
|
Message Closed
modified 23-Dec-20 12:43pm.
|
|
|
|
|
I have made 4 additional scripts:
vsto30.iss - Visual Studio Tools for Office 3.0 runtime
Office2007PIA.iss - Primary Interop Assembly for Office 2007
vsto30sp1.iss - Visual Studio Tools for Office 3.0 runtime SP1
SqlCompact35.iss - Microsoft SQL Server Compact 3.5 SP1
Note:
These perform a quiet installation, which means that the license dialogs from Microsoft are skipped. If the end user does not have to accept the license conditions from Microsoft, you might be obliged to include them as part of your own license conditions. Just don't hold me responsible.
I don't see any way to attach a file to a posting, but the files are short, so here they come. Let me know if there is a better way to post files here.
vsto30.iss - Visual Studio Tools for Office 3.0 runtime
[CustomMessages]
vsto30_title=Visual Studio Tools for Office 3.0 runtime
en.vsto30_size=2 MB
de.vsto30_size=2 MB
[Run]
Filename: "{ini:{tmp}{\}dep.ini,install,vsto30}"; Description: "{cm:vsto30_title}"; StatusMsg: "{cm:depinstall_status,{cm:vsto30_title}}"; Parameters: "/q"; Flags: skipifdoesntexist
[Code]
const
vsto30_url = 'http://download.microsoft.com/download/c/9/3/c93c2e15-4f0d-4482-99a1-37d096a399a2/vstor30.exe';
procedure vsto30();
var
version: cardinal;
begin
RegQueryDWordValue(HKLM, 'Software\Microsoft\vsto runtime Setup\v9.0.21022', 'Install', version);
if IntToStr(version) <> '1' then
InstallPackage('vsto30', 'vstor30.exe', CustomMessage('vsto30_title'), CustomMessage('vsto30_size'), vsto30_url);
end;
Office2007PIA.iss - Primary Interop Assembly for Office 2007
[CustomMessages]
o2007Pia_title=Primary interop assembly for Office 2007
en.o2007Pia_size=7 MB
de.o2007Pia_size=7 MB
[Run]
Filename: "{ini:{tmp}{\}dep.ini,install,o2007Pia}"; Parameters: "/quiet /extract:{tmp}"; Description: "{cm:o2007Pia_title}"; StatusMsg: "{cm:depinstall_status,{cm:o2007Pia_title}}"; Flags: skipifdoesntexist
Filename: "{tmp}\o2007pia.msi"; Parameters: "/qn"; Description: "{cm:o2007Pia_title}"; StatusMsg: "{cm:depinstall_status,{cm:o2007Pia_title}}"; Flags: skipifdoesntexist shellexec waituntilterminated
[Code]
function MsiQueryProductState(szProduct: String): Integer;
external 'MsiQueryProductStateA@msi.dll stdcall';
const
{from msi.h}
INSTALLSTATE_DEFAULT = 5 ;
o2007Pia_url = 'http://download.microsoft.com/download/e/1/d/e1df4622-5f6c-4fb9-845b-38d009cc1188/PrimaryInteropAssembly.exe';
procedure o2007Pia();
var
installstate: Integer ;
begin
installstate := MsiQueryProductState ( '{50120000-1105-0000-0000-0000000FF1CE}' ) ;
if installstate <> INSTALLSTATE_DEFAULT then
InstallPackage('o2007Pia', 'PrimaryInteropAssembly.exe', CustomMessage('o2007Pia_title'), CustomMessage('o2007Pia_size'), o2007Pia_url);
end;
vsto30sp1.iss - Visual Studio Tools for Office 3.0 runtime SP1
[CustomMessages]
vsto30sp1_title=Visual Studio Tools for Office 3.0 runtime SP1
en.vsto30sp1_size=1.3 MB
de.vsto30sp1_size=1.3 MB
[Run]
Filename: "{ini:{tmp}{\}dep.ini,install,vsto30sp1}"; Description: "{cm:vsto30sp1_title}"; StatusMsg: "{cm:depinstall_status,{cm:vsto30sp1_title}}"; Parameters: "/q"; Flags: skipifdoesntexist
[Code]
const
vsto30sp1_url = 'http://download.microsoft.com/download/0/c/4/0c4c5bd1-c27d-4ee0-8466-4a3ea487263f/vstor30sp1-KB949258-x86.exe';
procedure vsto30sp1();
var
version: cardinal;
begin
RegQueryDWordValue(HKLM, 'Software\Microsoft\vsto runtime Setup\v9.0.30729', 'Install', version);
if IntToStr(version) <> '1' then
InstallPackage('vsto30sp1', 'vstor30.exe', CustomMessage('vsto30sp1_title'), CustomMessage('vsto30sp1_size'), vsto30sp1_url);
end;
SqlCompact35.iss - Microsoft SQL Server Compact 3.5 SP1
[CustomMessages]
SqlCompact35_title=Microsoft SQL Server Compact 3.5 SP1
en.SqlCompact35_size=2.3 MB
de.SqlCompact35_size=2,3 MB
fr.SqlCompact35_size=2,3 Mo
[Run]
Filename: "{tmp}\SSCERuntime-ENU-x86.msi"; Parameters: "/qn"; Description: "{cm:SqlCompact35_title}"; StatusMsg: "{cm:depinstall_status,{cm:SqlCompact35_title}}"; Flags: skipifdoesntexist shellexec waituntilterminated
[Code]
function MsiQueryProductState(szProduct: String): Integer;
external 'MsiQueryProductStateA@msi.dll stdcall';
const
{from msi.h}
INSTALLSTATE_DEFAULT = 5 ;
SqlCompact35_url = 'http://download.microsoft.com/download/8/4/2/8423c019-ccb4-4d7d-b7f0-bcf83f1b9218/SSCERuntime-ENU-x86.msi';
procedure SqlCompact35();
var
installstate: Integer ;
begin
installstate := MsiQueryProductState ( '{E59113EB-0285-4BFD-A37A-B79EAC6B8F4B}' ) ;
if installstate <> INSTALLSTATE_DEFAULT then
InstallPackage('SqlCompact35', 'SSCERuntime-ENU-x86.msi', CustomMessage('SqlCompact35_title'), CustomMessage('SqlCompact35_size'), SqlCompact35_url);
end;
Phil
|
|
|
|