Firstly I'd like to congratulate you on the excellent solution Wix# is for everybody trying to implement setups and I hope I'll be a helping hand in the future improvement.
While developing a setup solution for a project I work on, I encountered two limitations that I solved indirectly by changing the Wix# source, but I feel they could be a good addition to Wix#.
The way you add IIS virtual directories is fine, but in my case I wanted to install a new website with a new AppPool, something that can't be achieved for now. I think you should add a Website array and similar functionality the way you do with IISVirtualDir or change current implementation to allow an exception when you pass as Alias "/" or something similar. I believe the majority of IIS installations are without a virtual directory anyway.
I also had to install a windows service and which had a dummy Service base and no installer, therefore I couldn't use InstallUtil or the Wix way. The path I chose was partially there in your code. You use internally sc.exe in CommonTasks.cs ServiceDo, and I just added a public ServiceCommand that allows to do everything with sc.exe. That can be also added as an option.
And a correction... in Controls\CustomUI.cs you set WIXUI_INSTALLDIR to TARGETDIR but should be INSTALLDIR that Wix uses.
If you'd like I can provide code as well for these. I'd also like to see a better integration with VS as others mentioned, but I know this would be a lot of work that perhaps is better left after other tasks are done.
Thanks again for your great work. Keep at it!
While developing a setup solution for a project I work on, I encountered two limitations that I solved indirectly by changing the Wix# source, but I feel they could be a good addition to Wix#.
The way you add IIS virtual directories is fine, but in my case I wanted to install a new website with a new AppPool, something that can't be achieved for now. I think you should add a Website array and similar functionality the way you do with IISVirtualDir or change current implementation to allow an exception when you pass as Alias "/" or something similar. I believe the majority of IIS installations are without a virtual directory anyway.
I also had to install a windows service and which had a dummy Service base and no installer, therefore I couldn't use InstallUtil or the Wix way. The path I chose was partially there in your code. You use internally sc.exe in CommonTasks.cs ServiceDo, and I just added a public ServiceCommand that allows to do everything with sc.exe. That can be also added as an option.
And a correction... in Controls\CustomUI.cs you set WIXUI_INSTALLDIR to TARGETDIR but should be INSTALLDIR that Wix uses.
If you'd like I can provide code as well for these. I'd also like to see a better integration with VS as others mentioned, but I know this would be a lot of work that perhaps is better left after other tasks are done.
Thanks again for your great work. Keep at it!