views:

215

answers:

1

Hello everyone,

I am making software setup package, and previously I am using Inno Setup, and it works very good.

The current issue I met with Inno setup is, it does not support all languages for the setup UI, for example Simplified Chinese.

The setup project of VSTS 2008 supports almost all languages, but it does not support invoke another installer from the current installer to let end user install dependent software packages.

My program to publish is for Windows platform (Vista and XP), written in C# + VSTS 2008 + .Net 2.0.

Any advice for my problem?

thanks in advance, George

+5  A: 

As one of the comments to your question suggests, you may want to simply integrate the required language into your Inno Setup. You do that by adding the Languages section:

[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"

This allows the UI to be displayed both in Englisch and Dutch. Other translations can be added accordingly.

The fact that Windows Installer does not allow "nested installations" (running an MSI from an MSI) can be annoying. You might, however, consider packaging the MSI installers into an UI-less (= silent) Inno Setup and have Inno Setup run the MSIs one by one.

EDIT
This shows you how you may run the EXE files to install your dependencies. Please note that they might be installed after your software. If it is required that they are installed before your software, you may need to code a little Pascal Script - this is explained in the help files.

[Files]
DestDir: {tmp}; Source: .\Files\sample.exe; Flags: deleteafterinstall;
[Run]
Filename: {tmp}\sample.exe; StatusMsg: Installing prerequisite

This includes file .\Files\sample.exe into the setup, copies it to the TEMP folder upon installation and removes it after the setup is done. Then, after copying your files, it runs TEMP\sample.exe and waits for it to finish.

EDIT 2
Regarding the OP's comment on the order of the items in the [Run] section:

There are two possible cases:

  1. You're using Inno Setup to perform the actual installation of your software (copying files, registry entries, etc.) and additionally need to run the installers for the prerequisites.
  2. You've got a separate installer for your software as well, and just need Inno Setup to run the installers for the prerequisites AND your software.

For case 1:
You do not need to put the your EXE file into the [Run] section at all, except you'd like to allow the user to start your application after setup as seen in many setups using a checkbox ("Run XYZ now?"). In that case, use the following line for your EXE:

Filename: {app}\yourprogram.exe; StatusMsg: Run the application; Flags: postinstall skipifsilent unchecked; Description: Run the application now

For case 2:
I'd order the entries in the [Run] section according to their dependencies. That is: first entry is the one that some others depend upon, last entry is your application setup. But I'm not sure about the order in which the entries are handled.

This might be answered in the docs for the [Run] section. When in doubt, try asking Jordan Russel (Inno Setup's author) for advice - he's a nice guy and when I last mailed him he was pretty quick replying.

Thorsten Dittmar
Thanks Thorsten, and I have tried your solution works, cool! Two more confusions, 1. Seem and value for Name could be any arbitrary value, as long as the value for MessagesFile is correct? Could you confirm this? 2. The dependent software is not delivered in the form of msi, but exe. Any advice solution for my problem?
George2
Hi, the Name value can be anything. Take a look at the help file that comes with Inno Setup. Open it and look at the "Setup Script Sections" section. There's a description of the Languages section with further details. Do you need to run the EXE files to install your prerequisites or do you need to just copy them somewhere?
Thorsten Dittmar
Edited my answer to show you how to run a "temporary" file when installing the application.
Thorsten Dittmar
Thanks Thorsten, 1. the value of Name is just for better description purpose? And the value of Name is not referred by other parts' of setup scripts? 2. I need to run the dependent exe file (not just copy). Any solutions?
George2
Hi, for 1., please read the documentation section I described above - I guess that if you add custom messages, you'll have to refer to that name, but I'm not sure. But it is in the docs ;-) For 2. see the edit of my answer.
Thorsten Dittmar
Thanks Thorsten, I have tested your solution works. Final question, in Run section, I need to put the prerequisite installation package on the first line, then put my main executable (the real program to install) on the second line? So, the sequence matters or I could put them into any arbitrary order? :-)
George2
Hi, edited my reply for more detail on the Run section.
Thorsten Dittmar
Thanks Thorsten, your answer is so cool. I have marked as your reply as answered. Thanks!
George2
No problem, glad I could help :-)
Thorsten Dittmar