Question:
I have created an installer for a windows service with Visual Studio 2012 and InstallShield.
The service runs fine.
The installer runs fine on my
Error code 1001 ALWAYS means a failure in the Installer class custom action. InstallShield is merely consuming / hosting it as you directed. Installer Class custom actions are notoriously brittle and run out of process so you get very little logging.
Instead of using the custom action, you should use the native Windows Installer ServiceInstall and ServiceConfigure tables as exposed by InstallShield under the advanced component settings. Create a component, add your service EXE to it as a key file and then define the service meta.
First I suggest merely creating the install and then starting it by hand after the install. Once that is working add the ServiceControl information so the installer does it automatically. Rinse and repeat on a VM.
If you get an error 1920 when the installer try's to start the service this is always a service problem. Profile it to understand the problem and then either fix the code or fix the installer if it's missing a dependency.