When the setup is installed, the Client-Only feature installs just fine, including the registrations of the DLLs. When the Client-Server feature is installed, all of the files are delivered, and there are no errors reported during the installation. BUT not all of the registration data from the DLLs (notably, the TypeLib stuff) gets into the registry, and the application fails. If I then go and register the DLLs manually using RegSvr32, all is well.
I got curious, and looked at my project's .MSI file with ORCA, and was amazed to find that the TypeLib table associates each value NOT to the component containing the DLL, but to the Feature containing the Component. And, sure enough, the Feature to which these DLLs were associated was "Client-Only", which I assume is the reason why that Feature is the only one which worked.
The inference seems pretty strong that, with the way I've structured this setup, only the Client-Only feature will get the TypeLib data into the registry. Have I missed something? Are DLLs restricted to being a member of only one Feature, for purposes of registration? Or, can I create additional entries in ORCA (or, better, in the Power Editor) to form additional associations of these DLLs with other Features? Has anyone navigated this swamp?
BTW, I'm using ISWI 2.03.