Applies to: io.Connect Desktop 9.x (installer + extensibility.json model). See the note at the end for io.Connect Desktop 10.0+.
Q: Why the installation only works when a user is actively logged in?
When you push io.Connect Desktop to machines with a remote software deployment tool (for example, PDQ Deploy), the deployment may fail or hang if it runs while no user is logged in, or while a user is logged in but disconnected from the session.
By default, io.Connect Desktop installs into the user profile - under %LOCALAPPDATA%\interop.io\io.Connect Desktop. Because the default path depends on a per-user environment variable (%LOCALAPPDATA%), it resolves against the profile of the account running the installer and the remote push only goes through when a user was actively logged in.
This can be solve by installing to a machine-wide location instead → predefine the installation path when you customize the installer, so it does not use the user profile or environment variables such as %LOCALAPPDATA%.
In io.Connect Desktop 9.x, you set this with the "context" extensibility point in your installer’s extensibility configuration. For example, to install under %ProgramFiles%:
{
"context": [
{
"type": "setValue",
"args": {
"name": "Path",
"value": "%ProgramFiles%/MyCustomProduct"
}
}
]
}
For more details, see the Installer section of the io.Connect Desktop documentation.
Note for io.Connect Desktop 10.0+
Starting with io.Connect Desktop 10.0, the packaging model changed: the platform is provided as publicly accessible components that you configure, customize, and package as installable artifacts or as a bundle (ZIP archive) via the seed project.
Relevant to the post-install step described above, io.Connect Desktop 10.0.4 added support for executing custom install and uninstall tasks via command-line triggers. See the io.Connect Desktop 10.0.4 changelog for details.