I've recently had to switch from Visual Studio 2012 back to Visual Studio 2010 to do maintenance on another project. This project is currently stuck in Visual Studio 2010 until I have time to convert the old setup projects to WiX. I often receive the following error message during Release builds:
"Unable to update the dependencies of the project"
Closing Visual Studio 2010 and reopening seemed to have fixed the problem up until about a week ago. I've found that installing this hotfix seems to resolve the issue. The only problem is that I've had to install the hotfix multiple times.
The 'cause' on the hotfix page says the issue is a result of how Visual Studio 2010 refreshes dependencies. I wonder if this is handled by Windows Updates updating the .NET Framework? Whatever it is, it's pretty annoying to have to apply this patch regularly. I guess it's just another reason for developers to move setup projects to WiX.
One thing that has caused me quite a few problems with my WiX installer was optionally displaying a dialog to enter SQL information when the database is installed.
I may change the database to be a critical element of the intall, but I thought this would be a good share.
To set the next button to display based on features chosen in the feature tree, you can do someting like this:
<publish dialog="CustomizeDlg" control="Next" event="NewDialog" value="SqlSetupDlg"> 1 </publish>
Where "Database" is the name of the feature you want to install.
Other access prefixes are:
- (none) Installer property: Value of property (Property) table.
- % Environment variable: Value of environment variable.
- $ Component table key: Action state of the component.
- ? Component table key: Installed state of the component.
- & Feature table key: Action state of the feature.
- ! Feature table key: Installed state of the feature.
After working with WiX today, I realized that it's not perfect. But, it isn't horrible. Maybe my issues are from following "tutorials" that are written for WiX 2.0, while I'm using WiX 3.0.
Whatever the reason, I have encountered only a few problems so far:
<removefolder id="FolderName" on="uninstall">
this caused a lot of errors. I don't know if WiX 3.0 has changed how it handles removal of folders? I noticed when I uninstall without specifying
, it actually removes the folder properly. (I'm using this on a folder under ProgramMenuFolder)
- Creating a new UI and adding dialogs was a pain. Referencing my dialog with
kept throwing errors. Quite a few google searches later, I still couldn't find a fix or a reason for the errors. The resolution: instead of creating the dialog in a different file as a Fragment, I just added it to the file modeled after WixUI_Mondo. After doing this, the dialog worked. Maybe fragments are broken? Or, maybe I wasn't compiling and linking the library properly.
- Many tutorials refer to a tool called tallow to create a Fragment of Components/Files. But, the tool is now called Heat. It's a useful tool, but I'm still having problems getting Fragments that I create to work right.
That's about it, I will write up some solutions to these problems if I find them.