WiX instaler: Read value from SQL
I'm new to WiX installer but I need to solve a situation. After searching for some time I haven't found any solution.
I need to read a value from SQL Server while running the WiX installer and keep it, but I'm not sure if it is possible. All I've found are 'updates' or 'insert' query examples, but no 'select'.
Has someone done something like this?
When you need to read something from somewhere during the installation process, you have several options:
- if it has a trace in the registry, then RegistrySearch is the proper choice
- if it has a file installed to the well-known location, then DirectorySearch/FileSearch approach fits best
- otherwise, you always have the last resort - a custom action
Obviously, if you need to read something from SQL Server, custom action is the only choice for you. So, to tell it short, you should create an immediate custom action which will read the data you need and place it to the property (or a number of properties). You should use this property later in your installation.
Try to avoid custom actions as much as you can, but if you have no other choice, still try to find the tested ones. For this particular case, take a look at the Community MSI extensions.
Although you might solve this particular problem fast, I would still encourage you to dive deeper into the topic and understand how Windows Installer (the underlying technology behind WiX Toolset) works. Start from MSDN.
As the blog post says the sp's are undocumented and thus unsupported but if it works for you it will save writing a custom action.