One installer with multiple uninstallers - InnoSetup - installation

i'm new here, and i will try to be specific:
We have multiple applications and decided to join them into only one installer, with custom wizards etc..
So i copied the source script from the others installers and pasted them inside the main installer, with a lots of changes to the script, and everything is working just fine.
However, i'm into a situation where one of these embedded application needs itself uninstaller..
I mean, i need an uninstaller for the main app, and an uninstaller for this app i've just added in the main app's installer.
Ps.: Having separated installers and calling them during installation is not what i want.

Related

MSIX: Start other Application in Multiple-Application Package?

So a Windows Application Packaging Project in Visual Studio can have references to multiple projects, which will be included in the package. One of those references/applications then gets defined as the entry point/startup application.
Is it possible to know where the other application in the package is located, so that I can start it from the entry point/startup application?
Hope this makes sense...
I assume you want to programmatically launch your other application, right?
By design, the binaries from an installation folder of an MSIX folder are not directly accessible through their direct path. I know this is how we did it for Win32 applications, but for containerized ones things have changed.
The correct way to run an app, installed by an MSIX package, programmatically or from the command line is with the use of an execution alias. The following article contains more details about how an execution alias works and how you can define it in your package, no matter the tool you use to build the MSIX package.
- App Execution Alias
Also, here is a related question on SO and another similar one.

InstallShield: Insert powershell custom action to install sequence

I'm having installshield project and I several powershell custom actions.
The scripts change the file system (extract zip files, copy files, install packages, etc).
I wonder where in the install sequence should I put them?
I looked at the guilde here but they don't cover it.
I tried to put it in the execute sequence after "InstallInitialize" but that made my scripts behave weird (some of the cmdlets work and some don't).
Then I moved them to the UI sequence after "ExecuteAction" and that seems to be working fine but I read somewhere that I shouldn't put in the UI sequence any scripts that change the file system..
What is the right place?
Thanks
Events that change the system should not be placed in the UI sequence, one reason is that there isn't anything preventing your user from skipping the UI sequence.
During the execute sequence, you cannot install another MSI package. Some installers may look like a .exe but have a bundled MSI. If your goal is to handle installing prerequisites, then you need to possibly use the InstallShield Suite/Advanced UI install. That has a method of managing multiple install prerequisites. I suspect that the problem you encounter is that some of those packages you try to install have imbedded MSI installs.

Run an Installer class during set up using Inno Setup

I want to run an Installer class during the set-up of a Windows desktop application. The point of the installer is to encrypt the configuration settings for the application using the DataProtectionConfigurationProvider (this must take place on the user's machine).
Executing custom actions seems quite straightforward in the old vdproj projects, but we prefer to use Inno Setup since it works really well and goes nicely in our build environment.
I've looked at the documentation around running other executables etc after the install process but do not see anything that refers to running an Installer class within the application.
You cannot call a .NET code directly from InnoSetup.
Either build a small application that you embed to the installer, extract to a temporary folder during installation and run it.
Or build a .dll and call it from InnoSetup.
See Call C# DLL from Inno Setup with callback

Windows oriented setup to deploy one file

I would like to build a setup, or something like that (1 file), to deliver a single file to a target system. Plugin for an application, installable to users AppData folder.
After some research I'm still not sure in which direction to look. I can create the setup project with Visual Studio 2010, but all of the options so far seem to be way too heavy or have some flaws.
SetupProject stubbornly wants to create an application folder which I don't need, and complains about installation to user folder. Cab doesn't seem to offer automatic install, oneclick is not available for the project, etc.
Is there an easier setup technology I could use?
Requirements:
Install -> Copy 1 file to a folder
under %userprofile%\3rdpartyapp\ if
it exists (xcopy).
Uninstall -> Delete the file and also
one folder with custom settings
(rmdir \s).
Distribution -> Free for commercial
use.
Maybe I should just pack the file in self extracting c++ exe?
It may be overkill for one file, but I like InnoSetup for creating setup packages. Check it out, and see if it suits you. It is very easy to use and deploy.
Take a look at WiX toolset. It allows creating MSI-based installers, and the installer could be quite simple:
Search for %userprofile%\3rdpartyapp;
Copy the file into it, if it exists;
Fail install or maybe create it, if it does not exist.
Uninstall would be very simple: it would need to remove the installed file. To remove a subfolder of 3rdpartyapp, you can use RemoveFolderEx element.
MSI registers the installed app with Add/Remove Programs Control panel. Uninstall is handled by Windows Installer service, therefore you don't need to copy any additional files or programs to support uninstall.
I think any setup technology is too heavy for one file. I'd go with creating a simple application that would extract the file from its resources stream and copy it into %userprofile%\3rdpartyapp.
Uninstall is trickier: there should be something that can handle the uninstall process. It could be a batch or script (js, vbs) file stored somewhere in user's profile, another simple application or the same one. (Installation process can also be handled with a script.)

Visual Studio Project to install multiple executables with one installer

I have 3 driver installers (.exe). I need to wrap them up in a single installer app so that my users can run one executable which then installs the 3 drivers.
In visual studio 2010, what is the best way to do this?
EDIT: I don't want the three executables to remain on the machine once the install is finished.
What I did to solve this problem was to put my multiple exe's into a self-extracting zip file and set the PostExtractCommandLine to a separate "installer" exe, which in turn checked for requirements, installed necessary components, restarted when needed, and installed my original exe's. This does however leave behind all the files, though you can have the "installer" exe delete everything when it's done.
(I used a library called DotNetZip to make the SFX.)
Edit
I had two applications I wanted to install, App1 and App2. These were both msi setup projects and could be installed separately. I then created AppsInstaller.exe, which ran App1.msi and App2.msi by calling msiexec /i C:\\Install\\App1.msi /qn, etc, as well as doing some other work. All three programs were put into an SFX file, with AppsInstaller.exe as the PostExtractCommandLine. My AppsInstaller.exe did everything silently, so no wizards where present, and is why I used msiexec. Since you want the wizard to show you can just call the msi's as Process's and use a WaitForExit to keep it coming one at a time.

Resources