Tortoise SVN File Version Property for Inno Setup - tortoisesvn

I am struggling to find an answer to this online.
I am using Inno Setup to create an installer for several files. I know InnoSetup can check file versions and wont overwrite with old versions which is brilliant.
However, I cant figure out how to make tortoise SVN add the "Version" property to its files.
I would rather not use the "touch" flag in Inno Setup for all the files.
I am fairly new to versioning (the creation of version ID's), and any 'usefull links' would be greatly appreciated on this one

That's not the kind of "version" Inno Setup checks.
Inno Setup checks the executable (.DLL/.EXE) version info (it's a Windows resource embedded in the file - see Version Info Resource at MSDN for details), like you see if you right-click an application in Windows Explorer, look at Properties->Details, and see things like:
File Description Some Application Description
Type Application
File Version 2.5.1.247
Product Name Some Product Name
Product Version 2.0.0.0
Copyright © 2013, Some Company Name

Related

Download file from internet (HTTPS) using Inno Setup version 5 (5.3.11) only

I cannot use Inno Setup 6 or above (which has built-in download support) as many of my users are still using Windows 7 (without any updates like SP1) and setup created with version 6 is failing there (even after Setting MinVersion to 6.0).
What I have already tried:
Inno Download Plugin by Mitrich Software – I am using Inno Setup
5.3.11 and it gives below error on first line (#include <idp.iss>):
To be able to use compiler directives other than '#include', you need
Inno Setup Preprocessor (ISPP) which is currently not installed.
To download and install ISPP, get the Inno Setup QuickStart Pack from
http://www.jrsoftware.org/isdl.php#qsp.
I tried searching Inno Setup QuickStart Pack on given URL, but could not locate as it is removed.
InnoTools Downloader – This does not support HTTPS which is required.
DwinsHs (Downloader for Inno Setup) – This has some odd requirement of adding link on my website which doesn't suite my need. Also, I tried it but giving same error as #1.
Any help to get https download working in Inno Setup 5.3.11 version is much appreciated.
According to Inno Setup version history, the latest version (currently 6.2) should support vanilla Windows 7 with MinVersion=6.0. I suggest you recheck this option to avoid using old versions.
Anyway, you can download any older version of Inno Setup from:
https://files.jrsoftware.org/is/
The preprocessor is included in Inno Setup installers for quite some time. It's definitely included in latest IS5, the 5.6.1.
You can probably also do without preprocessor altogether. Just copy and paste the contents of the idp.iss in place of the #include <idp.iss>. You will also have to manually preprocess the directives in the idp.iss itself. But there are only handful of them.

How can i get Setup.rul file of an old InstallShield Installer from its exe file?

I have an old InstallShield installer which i believe was made using InstallShield 2012. I don't have the install script code for the same. I only have exe of the installer with me.
I need to create a new installer containing some of the same features from old installer, so is there any way by which i can get the setup.rul file of the installer from its exe?
I did some googling but got no help.
Setup.exe Extraction: If you run an extraction of your setup.exe, do you get an *.ins file?
Programmatically extract contents of InstallShield setup.exe
Extract MSI from EXE
Decompiler: I believe there are some hacky solutions to decompile *.ins to *.rul. I do not have such a tool, nor have I ever tried one and I can't recall seeing any trace of them for a whole decade. Perhaps Installshield support can help?
Alternatives: Off the top of my head: Contact Installshield support, they might have better advice? Check with Installshield community? Check with Stefan Kruger - Installshield consultant? Check any source repositories you can find based on setup.exe timestamp? (search for *.rul, *.ism, or similar as relevant). Check backups? Check backups of setup developer PC? Check github.com even? (for samples of similar tasks). Check external media, email attachments, network shares, etc...

Stop InstallShield installation when Inno Setup is detected

I am trying to migrate from InstallShield to Inno Setup. I have all setup but I got stuck on a single case when the user might downgrade from Inno Setup back to the InstallShield. I need InstallShield to fail the installation or at least warn the user to uninstall Inno Setup version first manually (otherwise I get two versions installed and things get messed up).
I CAN´T of course change the existing InstallShield installers in any way since they have already been released. Solution must come from Inno Setup. Any ideas how this could be done? I understand this might me impossible.
A stock InstallShield template automatically authors a prevent downgrade rule into the MSI. Assuming your InnoSetup project was created using the same UpgradeCode as the InstallShield project this should work automatically.
If you gave your new InnoSetup project a new UpgradeCode GUID and authored a remove legacy product type rule using the old GUI in the Upgrade table there really isn't much InstallShield could possibly do. That's the nature of installers... once it's shipped it's shipped.
I do not think this can be done. The Inno Setup does not use the Windows Installer, so the InstallShield won't even know that your product is already installed. And Inno Setup uninstaller cannot know that the InstallShield installer is starting.
The best what you can do is to have your Inno Setup installer remove the InstallShield installation and install itself to another folder. So when you re-install the InstallShield installation, it at least won't conflict/break the Inno Setup installation. And user will be able to correctly uninstall the new Inno Setup installation, if needed.
OK I solved it. (kind of)
There is a simple trick what you can do to trick the InstallShield to think it is already installed even if it is not.
First you need to locate all the registry entries with your UpgradeCode and ProductCode (it should be 3 entries for the UC and 5 for the PC) normally created by the InstallShield. Also note that both GUIDS are stored in the registry in reversed form (first 8 chars are backwards!!! - rest I am not sure of but it can be googled).
Now you need to make the InnoSetup recreate this registry entries. When InstallShield starts it looks for existing version in the registry, if it finds one it tries to uninstall it using the copy of the original installer - path to the copy is stored in the registry at
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products{reversed guid of product code}\InstallProperties]
"LocalPackage"="C:\Windows\Installer\[random string].msi"
If InstallShield wont find this file it will fail. You can also create your own MSI file which will call the uninstall.exe file from InnoSetup.

Registry in inno setup

I am new to creating installers. Before used the Microsoft visual studio deployment package. Now trying inno setup, pretty awesome.
I saw that Visual studio one wrote some registries when installed.
Do I have to create Registries for my package too? I have a visual c# application and need to create a installer for my company. Main intention is to create a installer that will easily update the old one, but this is a first version of software we are going to release to customers. Much appreciated. I saw tutorials of Registry in internet, but the point of creating is the one that I don't understand.
I'm not sure what you are asking exactly. If you mean how do I write to the Windows Registry, you create a [Registry] section in your inno-setup file and add what you need. Here is a link to the documentation.
You don't HAVE to write any registry entries unless your app requires them.
Inno automatically creates the usual entries to allow uninstall from the Add/Remove programs applet.
Inno will also automatically handle upgrades with no special effort.
If you have previously distributed the app using an MSI package, then you will either need to allow side by side installs (different folders, etc) or uninstall the previous version first. The article above has a sample of how to get the uninstall path.

how to display embedded manifest

I have some projects built with different versions of VS2005 that require different run-time version. i need to display the assemblyIdentity to see which run-time is required to run the program. I need the information to include the specific VC80 runtime MSM in my WiX installer project.
{Edit}
While the binaries have been built with Visual Studio I don't have a VS on the PCs where WiX shall be used. I am reluctant to install an Express version, since I am a guest on that PC.
{/Edit}
How can I conviniently display the embedded manifest? Preferrable with a small tool, command line tool would be OK.
Manifests are stored as resource in executables/DLLs. These are stored under RT_MANIFESTresource type. Open the resources under it and parse it as XML.
One example is pasted below (I opened one of my EXE using VS resource editor):
The PeStudio is a small tool that does the job. Including displaying the manifest in clear text.
Additionally it displays all DLLs that must be present on target system. That helps to author the installer.

Resources