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