Windows installer and installshield caveats – Echelon LNS User Manual
Page 326
LNS Programmer's Guide
312
In order to find the LNS runtime installation files when the Custom Action is called, the
_SetupLNS.dll makes the following assumptions about the configuration of your
installation and installation medium. It assumes that there is a Windows Installer
property named SETUPEXEDIR defined, and that this property gives an absolute
directory location on your source medium. It assumes that it will find the LNS runtime
sub-installation in the directory “LNS Server” (for the Echelon LNS Server) or “LNS
Remote Client” (for the Echelon LNS Remote Client) of the directory defined in
SETUPEXEDIR. Recent versions of InstallShield set the SETUPEXEDIR property
automatically for installations that are run from their standard setup.exe, making it this
convention particularly useful for InstallShield users. If you are not using InstallShield
for your Windows Installer development, this property may also be defined and set
manually within your installation in order to point to the proper medium location of the
LNS runtime installation.
The version 3 Microsoft XML Parser installation is also available as a merge module for
Windows Installer based installations, and it should be installed separately by your
installation, just as in the setup.exe case. The merge module, named msxml3.msm, is
included in both InstallShield DevStudio 9 and recent versions of Visual Studio.
LNS Server and Remote Client Runtime Incompatibility
The LNS Server and LNS Remote Client runtimes are mutually exclusive, and should
never be installed on the same PC at the same time. The LNS Server installation is a
superset of the LNS Remote Client installation, and may safely be installed after
removing any Windows Installer based LNS Remote Client installation on a PC.
Likewise, the LNS Remote Client installation can be safely omitted if the Windows
Installer based LNS Server installation already exists on the PC.
Neither of the LNS runtime installations currently checks for the existence of the other
installation in order to force remedial action in this case, but they may be modified to
provide that function in the future. Your LNS-based application installation may provide
this check now if this case is likely to arise in your installation scenario.
Windows Installer and InstallShield Caveats
When embedding the new LNS Server or LNS Remote Client runtime installations into
your LNS application's installation, do not use the "Nested Installation" option of
Windows Installer. This will cause the LNS Server installation to become too tightly
coupled to your application. It will not allow the LNS runtime installation to be patched
or upgraded, or to be installed by another application on the same PC, so it is not an
interoperable way to install the LNS runtime.
Windows Installer does not fully support concurrent installations, but the LNS runtime
installations may be run during some portions of some types of Windows Installer based
installations. For example, in InstallShield DevStudio 9, the LNS Server may be
installed as a Custom Action during some portions of the UI sequence of a “Basic MSI
Project.” Because of the InstallShield-Windows Installer runtime architecture, the LNS
Server can only be installed by an “InstallScript Windows Installer Project” as a Nested
Installation. Therefore, an “InstallScript Windows Installer Project” type project may not
be used to install the LNS runtime.