I have created a simple silent installer with no ui for my application using WIX. I want to have an uninstaller link which removes all the directories and registry entry created during installation of application. I am getting no idea how to accomplish this. Please help.
Here's a special topic for your case in WiX manual.
Related
I am using Wix for create MSI packages.I have successfully created the project and its working fine. But i have challenge that I need to remove the Repair and Change functionality from my msi, means I need only the uninstall option for my msi. But currently I am unable to do so. I googled a lot and search every piece of tutorials, but didnt find any solution. Can anyone help me to Configuring WIX project to remove control panel options?
You can control these kind of functionality by using the ARP-properties of Windows Installer, where ARP stands for Add-or-Remove-Programs.
In your specific case set the ARPNOREPAIR- and ARPNOMODIFY-properties to 1. That should do the trick.
What is the best way to make a silent installer (or unattended) for a program that was already created and has a msi installer?
At work I'm told to create an installer that is automated and does all the interaction with the user automatically so that the user essentially just hits one button and it runs through the msi installer of the program that was already developed. Also I have to make it replace a couple files in the directory.
Is it possible to make a installer automate another installer?
Can it be done using WIX in visual studios or NSIS?
Do I need to be able to pull the already developed installer into Visual Studios? If so how?
Bonus- I would like to be able to design the UI so I can place the company logo on it.
I'm a beginner in this field and learn best from walkthrough's or tutorials.
1) Yes - a bootstrapper is what you are looking for. Burn.exe comes with WiX, more information here
2) Yes to using WiX I know nothing about NSIS.
3) If you have nothing you need to change in the MSI then you could just use WiX to create the bootstrapper that would install your existing MSI.
Bonus) WiX lets you fully edit the install dialogs including logos, licenses, etc. More information here.
Extra thoughts: silent installation is part of MSI; your current installer can be installed silently by executing
msiexec /i <your msi> /quiet
in a command prompt, the command prompt may need admin privileges.
If you need to make changes to the existing msi look at using Dark.exe again a component of WiX that will decompose your existing MSI file into .wxs files. This post may also prove informative on moving to WiX.
I am trying to call a msi inside wix bootstrapper program.It is working properly at the time of installation.And selected features are installed properly.But after installation i am trying to modify the installed features.In the control panel there is change button.But when i click it then it is showing a dialog with Repair, uninstall, cancel buttons.There is no modify button for modifying the features of installer.
Please specify the solution if any.
code inside Bootstrappertheme.wxl is
<!-- Modify dialog -->
<String Id="ModifyHeader">Modify Setup</String>
<String Id="ModifyNotice">[WixBundleName] is already installed on this machine. If it's not working correctly, you may repair it. You may also uninstall it.</String>
<String Id="ModifyRepairButton">&Repair</String>
<String Id="ModifyUninstallButton">&Uninstall</String>
<String Id="ModifyCloseButton">&Cancel</String>
The wix standard bootsrapper application does not currently support msi feature selection. Currently, the only way to get it is to create a custom bootstrapper application. People have asked about this on the WiX mailing list multiple times. Rob Mensching is the project leader, and Bob Arnson currently manages the 3.x branch.
This guide: Writing Your Own .Net-based Installer with WiX is the best resource I know about for building one in WPF. The actual WiX source code is very helpful as well. It's a very big task though.
I don't have a sample project to share with you, but the blog post I mentioned above does have a section "HANDLING CURRENT & FUTURE STATE" which describes how to do this. I think it really is a terrific resource.
Also, see this question: Custom WiX Burn bootstrapper user interface?
Burn GUI
Burn GUI is very different from MSI-GUI. Here is an older, similar answer
Please also see comments in these answers:
On customized GUI
Changing text color to Wix dialogs
Custom WiX Managed Bootstrapper Application
MSI File
What dialog set are you using for the MSI files? Have you tried enabling the advanced dialog set? I haven't tried it yet: http://wixtoolset.org/documentation/manual/v3/wixui/dialog_reference/wixui_advanced.html
WixUI Dialogs:
http://wixtoolset.org/documentation/manual/v3/wixui/dialog_reference/wixui_dialogs.html
Tutorial:
http://wix.tramontana.co.hu/tutorial/user-interface/ui-wizardry
It might be possible to use Orca (http://support.microsoft.com/kb/255905) to edit the MSI and resave it so that it, without special configuration in wix, automatically has the Modify option in Programs and Features. When creating an MSI from scratch (using InstallShield for example), the user can specify which options are available. There should be a way to edit the file to accomplish the same thing.
When you open up the "Change" feature from the Programs and Features menu, it reruns a cached version of the MSI installer in maintenance mode. Regardless of what program is bootstrapping the MSI (wix vs InstallShield), the MSI is the only thing that Windows knows about. If it is not configured to have a Modify option, it won't have it.
I have standalone setup project created with wix. And I need some solution for auto update my application.My application should check for new version on start up and automatically download and install new version if available.What's the best solution to do this? Can anyone give me some examples?Thanks.
If you use Burn as your bootstrapper/chainer (something I definitely recommend when distributing MSI files over the internet) then you can create a custom bootstrapper application that implements the update mechanism. This is how the WiX toolset updates itself. You can see the code in WiX v3.7 (or later) branch in src\Setup\WixBA\UpdateViewModel.cs.
I have an existing large WiX install that has already been released. I need to create a small install for just a couple of files that have changed. I have created a patch (.MSP file) in WiX for these few files using the "PatchCreation" element. When the patch is run, it presents the user with a "Reinstall/Repair/Remove" dialog. If the user selects repair, the patch does exactly what it is supposed to. My problem here is that I don't want the patch to say "repair," or to give the user these options. I just want it to install over the few files I have, more or less like a regular install. What can I do to fix this?
MSI implements patches as repairs. In WiX v3.5, the WixUI dialog library has dialogs that are displayed when installing patches.
I have found a more flexible way to work around this, thanks to some help I found here. If you start MSIExec with command-line options (for example, "msiexec /p [patch file] REINSTALL=ALL REINSTALLMODE=omus"), you can get the install to start up without the "Repair" option coming up. You can also use the IExpress tool (which is shipped with Windows, and can be brought up in a command-prompt) to create a wrapper/bootstrapper that will start the MSP file from MSIExec.
Thanks very much to the answers I received. I would not have figured this out without your help.
I partially agree with Bob. Patches in WiX are applied through a repair, but Windows Installer does support a standalone patch installation. Other setup authoring tools can create them.
Regarding the WiX patch, I recommend using a custom bootstrapper which applies the patch automatically.