Fellow WiX users,

I apologize if this has been covered before, but I don't understand
things well enough to know what I should be searching for.
I've used WiX before, for a limited case, and it worked out pretty
well then; I hope it will work out for me now.
Here's the layout:

Application is a .NET Windows service, that can listen on a port for
HTTP messages, and optionally on another port for HTTPS messages.
The service is accessed only via "localhost", and so requires a
certificate issued to that name.
Executable contains a set of "Installer" classes that, when run by
installutil.exe, do the following:
- Registers (and, at the end, starts) the service
If the relevant options are passed to installutil, also does this:
- Configures registry key containing the port for HTTP messages
- Configures registry key containing the port for HTTPS messages
- Generates a public/private key pair
- Modifies the ACL on the private key so that the user account that
the service runs as can use it.
- Generates a self-signed certificate for "localhost" with that public
key and stores it in the machine-level "My" (Local Computer)
certificate store, tied to the private key
- Installs a copy of that certificate, sans private key, into the
machine-level Trusted Root Certification Authorities, so that the
computer actually trusts the certificate

This all works, so far.

Now, I need to create an installer that can do the following:
- Prompt (or read from an XML template file), with a default value,
for the HTTP port number
- Prompt (or read from an XML template file), with default values, for
whether or not to enable SSL, and if so, the HTTPS port number
  (also cause the certificate to be generated, preferably by simply
invoking InstallUtil with the appropriate parameters)
- When upgrading, preserve these options and the certificate
- When uninstalling, prompt the user to choose to uninstall the
program only, in which case the configuration keys and certificate are
kept,
  or to uninstall and delete all configuration data, in which case the
certificate, private key, and configuration keys should be deleted.

Optionally, I would also like:
- The ability to update the config settings and/or regenerate the SSL
certificate via a "Change" option in the Add/Remove Programs list

Now, several of these, I am certain I can quickly sort out on my own;
for example, the 'read from XML file' shows up on the recent mailing
list archives, and I'm sure I can figure out how to make the wizard
dialogs (I've done it once before.)  But I'm not sure how to piece it
all together properly, and this needs to be bulletproof -- unlike what
I've done before, the end users are not going to be very technically
skilled.  Therefore, I would greatly appreciate any pointers in the
direction of "how to do this" -- especially the part about preserving
the SSL certificate across upgrades, while allowing the option for it
to be purged when the application is uninstalled.

-- 
-- Stevie-O
Real programmers use COPY CON PROGRAM.EXE

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to