Uninstall file in Start Menu applications list isn't always shown - nsis

After installing the application, the installer and uninstaller files are properly saved in the "install application folder" and in the "Start menu application folder" rispectively.
For example:
- "install application folder" = "C:\Users\\AppData\Roaming\"
- "Start menu application folder" = "C:\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\"
Sometimes, though, the uninstaller file is not displayed into the application folder of the Start Menu Installed Applications List (list of installed Applications displayed on the left by pressing the Windows keyboard key).
Unfortunately I can't reproduce the problem. It doesn't appears each time I launch the Installer and I couldn't understand under which circumstances it appears.
Is there a possibility it can be solved by forcing a refresh of the Start Menu Installed Applications List? if this is the case, how can do it?
Thanks in advance to everyone for the possible help
EDIT: no solution but a workaround found here Inno Setup Start menu uninstall shortcut is not shown on Windows 10 2nd answer

Windows 8 and 10 hides shortcuts to uninstallers and help files on purpose, this is by design.
The Windows logo requirements says that you should only provide a single shortcut to your main application in the start menu. Only create multiple shortcuts if you have a suite of applications (like MS Office etc.). These guidelines have been in place for at least 20 years!

Related

How to make uninstallation work by right clicking app icon from start menu [duplicate]

I created an install file with Inno Setup 5.5.9 that I then ran on a Windows 10 machine. My only problem has to do with uninstalling the program. I can use the Control Panel just fine to uninstall. But in the Start menu, when I right click on the shortcut that launches my program, there is no option in the context menu to Uninstall. Other programs do have this option.
Is this a Windows 10 thing that I can't get around?
Does the program need to be installed under Program Files or Program Files (x86)?
Or is there a change I can make to my Inno script to have the uninstall option show up?
I'm a standard user on the Windows 10 machine, and therefore installed the program without administrative privileges. Does that have anything to do with it?
Only "Windows apps" (aka Universal Windows Platform [UWP] apps, Windows Store apps and Metro-style apps) have working "Uninstall" command.
Classic "Desktop apps", like those installed with Inno Setup, do not. Their Uninstall command only opens "Program and Features" Control Panel. Check other major desktop apps, like Microsoft Visual Studio or Google Chrome. Their "Uninstall" command behaves the same. And they are definitely not packaged by Inno Setup.
You would have to re-package your desktop app to turn it to "Windows app", instead of using Inno Setup.
I had the same problem.
In my case sometimes only the uninstall shortcut in windows start menu disappers.
I somehow fixed it.
Just use in Icons-section the command to create this shortcut twice. Their names need to differ.
For example:
Name: "{group}\{#Uninstall_Name} {#MyAppName}"; Filename: "{uninstallexe}";IconFilename: {app}\{#IconFileStartDesktop};
Name: "{group}\{#MyAppName} {#Uninstall_Name}"; Filename: "{uninstallexe}" ;IconFilename: {app}\{#IconFileStartDesktop};
If the first uninstall-shorcut does not show up, the second one enter code here will to it.

.Net InstallShield - Creates broken shortcuts

I've got 2 projects in my solution.
The one is a small win forms project, and
the other, a InstallShield Limited Edition project.
Everything works fine & installs correctly for the most part. The desktop and start menu shortut's get created also with the correct icon... except that that the target & start in properties are blank... and thus the shortcuts are useless.
Normally target should have the reference to the executable, but it seems to be populated with my project name :/
I'm not too sure how I can go about debugging this? Or what would be causing the problem?
I started going going through the sub steps in the Installer project.
Under the 3rd node - Configure the Target System, there is a Shortcuts/Folders item.
Upon opening you'll see a tree view of where the shortcuts will be created. I selected the desktop shortcut, and noticed that the working directory was not set. I changed it to point to [INSTALLDIR]
This fixed the problem for me

Enable 'Run as an Administrator' for Windows 7/Vista application (VS2012/InstallShield2013)

I'm using VS2012 & InstallShield2013 to generate installer file.
Some of the installed user couldn't run this application on WIn 7 OS. But they can get into the installed directory
and right click 'Run as an Administrator' it works.
The icon on the desktop, when i right right click there is no option like 'Run as an Administrator'.
I checked in the InstallShield directory C:\Program Files\InstallShield\2013LE\Support\
There are three files:
SetupExe.Admin.manifest,
SetupExe.Highest.manifest,
SetupExe.Invoker.manifest
So I followed this article : http://helpnet.flexerasoftware.com/installshield20helplib/Content/helplibrary/SpecifyingRequiredExecution.htm
and selected Required Execution Level 'Invoker' and Include MSI Engine:yes in the 'Release Setup /Single Image'
How can i enable the option to right click 'Run as an Administrator'?
It's important for me to fix this problem, for the users of Win 7 32/64 & Win Vista.
I'm totally confused about these files. Please help me.
The settings you reference in InstallShield will not affect how your application itself runs; instead they only change the privileges setup.exe requires when launched.
As for your application, there are a number of potential moving pieces that can affect whether the "Run as administrator" option shows up in the context menu in Explorer:
If the exe referenced by the shortcut has a manifest that requires administrative access, it will always run elevated, and the Run as administrator option will not appear
If the exe referenced is detected as an installer, Windows may choose to act as though it has a manifest requiring administrative access, and thus the Run as administrator option may not appear
If the Program Compatability Assistant (PCA) has decided the program needs administrative access, ditto
If the shortcut's compatibility settings have been modified to select "Run this program as an administrator", ditto
If UAC is disabled, Explorer may choose not to show Run as administrator
Some of these scenarios may persist across uninstallation and reinstallation; Windows can be very aggressive in its attempts to improve the end-user experience. However in all these cases, the end result is that your application would launch as an administrator.
If you always require administrative access in your application, you are strongly advised to implement the first of these: embed a manifest that includes the requiresAdministrator setting. This is equivalent to what the settings you reference change for setup.exe, but must be done in your application's executable.

Why does uninstall ask to close an app that isn't open?

When launching uninstall from Explorer, it pops up a message asking the user to close the application.
However, the application is not running. What does FindWindow see that the user can't see?
This does not happen on Windows95 or systems using the Win95 interface.
The problem does not happen when uninstalling from the uninstall icon in the start menu.
the procees is still running in background. Take a look with ProcessExplorer or WindowTaskManager maybe you will recognize it
In the Win95 GUI, the title of the Explorer Window included the full path - e.g. C:\BuildScripts - whereas in later version (our QA is using Win7 and Win8) the title is now the folder name - e.g. BuildScripts.
Therefore, if your installation folder has the same name as your product, FindWindow cannot differentiate between the open Explorer window and your product.
This is why the problem only arises if you uninstall from Explorer, and does not happen if you uninstall from the uninstall icon in the start menu.
Solutions:
Don't use the same name for your installation folder and your product.
Use the "class" parameter in FindWindow

How do I create an InstallShield LE project to install a windows service?

I downloaded Visual Studio 2012 yesterday when it was released on MSDN. I have noticed that a few of the project types that we had in 2010 are gone or different. The biggest difference for me right now is the removal of the Windows Installer project. Now we are being forced to use the InstallShield LE (Limited Edition). The problem here is that I write a ton of Windows Services and I can't see how to setup InstallShield LE. It appears that we (my company) will have to invest in licenses for the professional edition.
Has anyone found a way to install services in InstallShield LE? When using the Windows Installer project, you just set the custom actions.
For Visual Studio 2012 & InstallShield LE, do the following:
Run through the InstallShield project assistant and add the primary output of your service to the Application files section.
After you are done with the project assistant, double click the "Files" item under step two of the setup project.
Right click on the primary output of your service, and go to properties.
Click the "COM and .NET Settings" tab, and place a check in the "Installer Class" checkbox.
Click Ok
Now, once you build and run your install, your service will show up in the Windows Services snap in.
Note that this assumes you added a "Project Installer" to your service project (Right click on the service design sheet and click "add installer"). I can confirm this work on Windows 8 with Visual Studio 2012 / InstallShield LE.
I've recently installed VS 2012 with Install Shield LE. At first I kept getting a ISEXP -5036 internal server error after a build (this was after setting up a ISLE project and running through the Install Shield Project Assistant). Eventually I found out that it was trying to create the MSI in the DVD-5 media type which is where it was failing. For some reason, creating the solution again from scratch somehow recognizes to only build to the CD_ROM and SingleImage media types which works.
Anyway to rectify the 5036 error, click the Build tab in VS 2012 (top menu), select configuration manager and you should see that your IS setup file is selected on the DVD-5 configuration. Change this to CD_ROM and click close. Once you build/rebuild it will complete with no IS 5036 error.
While using the installer class checkbox may work for some instances, you may experience the following error:
Error 1001.The specified service already exists
Here is an excerpt from this link on how to resolve this issue:
For Error: Error 1001.The specified service already exists
This error will occur if the component installing a .NET Service is
incorrectly configured with ".NET Installer Class" set to Yes. The
method to install a .NET Service is to use Component\Advanced
Settings\Services view, not the ".NET Installer Class" setting.
Making definitions in the Component\Advanced Settings\Services view
creates entries in the Windows Installer ServiceControl and
ServiceInstall Tables. These entries are used by the Windows
Installer "InstallServices" action to install the Service.
If your project is .NET, then try then you can use the ServiceProcessInstaller class with InstallShield LE.
To get it to work with InstallShield, you have to go into the InstallShield "files" tree and right click on your file. Then check the checkbox for "Installer class" on the "COM and .NET settings" tab.
I have gotten it to work, but I've had problems on some OS's like Windows 2008R2. Your mileage may vary.
Here is an example: http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C
I had all sorts of problems with this.
As follows.
InstallShield takes ages to download
the registration process is a pain.
the configuration options are confusing and overly complex.
the accepted solution on this thread is a hack and it doesn't always work - see 1001 in the documentation - essentially you need to get through the paywall to get the right configuration options to install a windows service.
Solution for me as mentioned elsewhere - was to abandon InstallShield
Very easy from that point.
Edit: Update - install the latest version from here https://wix.codeplex.com/releases/view/115492 for vs 2013 / 2015
Visual Studio setup projects are back in VS 2013 as a visual studio extension.
https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d
Please update your solution and projects to VS 2013. If you are still in VS 2010, you are probably better off by upgrading directly to VS 2013.
My experience with Installsheild LE is that it is very quirky but once you figure out the tricks, it is easier to use. However, I think that the limited edition is a way by Microsoft and Flexera to sell the fully featured edition. In other words, first we pay Microsoft a lot of money for Visual Studio and then their partner (in crime) more for Installsheild. Bad strategy which did not work out since they had to bring back the setup projects in VS 2013.
I've written about this subject:
Augmenting InstallShield using Windows Installer XML - Windows Services
Basically you create a merge module using WiX to encapsulate the service and then add it to your installshield project. ( Be sure to associate to the INSTALLDIR directory to make sure your file goes where you expect ). Build and test on a VM. Piece of cake.
I'm using VS2012 and Installshield LE Spring Edition. I did not have to use Wix.
If you encounter the error "Could not create _isconfig.xml for use with InstallUtilLib.dll", please create a folder with the same name as your setup project and inside the setup project folder.
Credits to http://community.flexerasoftware.com/showthread.php?165929-Could-not-create-_isconfig-xml-for-use-with-InstallUtilLib-dll
I just got some problems finding where to add installer as referred in the answer. So here it is how.
Double click on your service class within your Windows service Project
A blank screen with the text "To add components to your class, drag them from the Toolbox and use the Properties window to set their properties..."
Right click anywhere but on the links and select "Add Installer"
see ya
Bear in mind that all the above explanation will not help you if you plan to create later an upgrade of that setup. InstallShiled LE can't stop the running service when you upgrade. You can't do it either from Window Service Installer -> BeforeInstall event.
Wanted to put this here;
On VS 2015, when doing this, I ran into the 1001 error upon installation repeatedly.
Answer on this page explained that on the newer versions (anything past 2012), apparently you need to explicitly leave the installer class option unchecked, and then add your windows service under the Services section under Step 3 of the installer project:
Error 1001 when installing custom Windows Service

Resources