LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Application Builder - Don't Create Uninstall Option

Okay so I have an installer that installs other installers.  This main installer is made with InnoSetup and ISTool and it has the ability to do things like any normal installer would.  One of the installers that this main installer installs is an NI installer that was made with the Application Builder.  This NI installer is just there for the drivers.  There is no application in this NI installer and really is just the Additional Installers I selected.  No files are selected in Source Files.

 

So I have a main installer that installs an NI Installer, that installs various other NI Drivers.  This all works fine and is good.  What I'd like to know is if there is a way to not have an entry in the Add/Remove programs listing, for the NI Installer?  Basically I want to know if there is a way to not allow my NI Installer to be uninstalled.  This is because my NI Installer doesn't install anything, it just runs other installers, and having an entry in the Add/Remove programs listing for "NI Installer" that when uninstalled does nothing might be confusing to users of my software.

 

Another options might be for me to remove using the NI Installer, and just call the Additional installers myself from my main installer but there are lots of them and I don't know how NI does it.  There is also the NI Batch Installer Builder but again having to select the many NI installers one at a time might take a while and still might not work right.  And updating if new drivers are added would be a pain.  Really I just want to make an installer with the Application Builder, that can't be uninstalled, is there a way to do that?  Thanks.

 

Also I did search for this kind of thing and the search terms are hard to search on, causing me to find articles about uninstalling NI software.

0 Kudos
Message 1 of 6
(2,552 Views)

This may not actually work in practice, but if running the uninstaller does nothing, then could you have your main installer run your Application Builder installer, which runs NI installers, then when it's done, uninstall the Application Builder installer?

 

I don't know if that would uninstall the NI installers as well or not, but it would take it off of the list. I don't know if you can do it "silently" either.

Message 2 of 6
(2,520 Views)

Thanks for the suggestion.  I did try to uninstall the NI Installer (from app builder) and it seemingly did nothing other than remove it from the list of applications that can be uninstalled.  All the NI drivers, and the other tools that were installed stayed installed and worked fine which is what I expected.  Running the NI Uninstaller silently on this is an option.  One other thing I found is the entry in the registry for these applications and if the Product Code is known that section can be deleted and after doing that the entry was removed from the Add/Remove list.  I had to find the section under the WOW64 section since this is a 32-bit NI installer on a 64 bit machine. 

 

One issue I found is that the code listed in the registry is the Product Code and doesn't match the Upgrade Code from the Application Builder >> Version Information listed in the project.  I'm unsure how these two codes relate but I can probably just hard code a delete of a registry path and be okay.  Still I'd appreciate a simple easy fix from NI where I just add something somewhere and it just doesn't allow uninstalling of the installer.

 

Oh and another way this could be fixed is if NI implemented a Post-Install call for an installer so I could clean this up myself.

0 Kudos
Message 3 of 6
(2,509 Views)

@Hooovahh wrote:

One issue I found is that the code listed in the registry is the Product Code and doesn't match the Upgrade Code from the Application Builder >> Version Information listed in the project.  I'm unsure how these two codes relate but I can probably just hard code a delete of a registry path and be okay.  

 



I did some poking around and found this thread that may help if you haven't seen it:

 

https://forums.ni.com/t5/LabVIEW/understand-the-product-code-in-labview-8-6-installer/td-p/937227

 

One of the links in that thread is to a blog post, but it's only available via Wayback machine:

https://web.archive.org/web/20170106075852/http://blogs.adobe.com/simplicity/2009/05/upgrade_codes_p...

 

I haven't actually tried any of this myself, but it might get you started on the right path.

Message 4 of 6
(2,487 Views)

Okay so I sorta have something working, again NI I'd be glad to hear of an INI key that does this for me.  After making an installer open the install.ini.  Under the [install.msi] section there is a ProductCode key.  I then downloaded Autoit3 and used the following code:

 

Local $sRead = IniRead("install.ini", "install.msi", "ProductCode", "Default Value")
RegDelete("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\" & $sRead)

I then compiled that .au3 file into an x86 EXE.  I have my main installer install the NI Installer with the silent switches like normal, and after that is complete I run this Autoit3 EXE which is placed in the same folder as the install.ini.  This reads the INI then deletes the registry entry for uninstalling the software which doesn't do anything anyway.

0 Kudos
Message 5 of 6
(2,450 Views)

Hi Hooovah,

 

Let me know if this Windows Page helps.

 

Additionally, you would be better supported by opening up a Service Request. Feel free to reach out at 866-275-6964.

 

All the Best,

 

Noah B. 

Applications Engineer

National Instruments

http://www.ni.com/support

 

 

Noah B.
Technical Support Engineering
National Instruments
0 Kudos
Message 6 of 6
(2,424 Views)