Creating FICO Xpress Runtime Distributions
Topics covered in this chapter:
For distributing an application that uses some portion of FICO Xpress Optimization to end-users we recommend that you distribute the whole installation package, but if you only want to distribute parts of it then here is how to do it.
Runtime Libraries and Other Dependencies
- Make sure that there is no other Xpress software, library files or license files on the path or in any directories used or accessed by your application – in particular, be careful that no earlier releases of Xpress software are present.
- The files you need to run (but not compile) applications depend on which of the Xpress libraries you are using. Here we give the files required for Windows and Linux/Solaris; the files required for other Unix operating systems are similar to those required for Linux/Solaris, but the exact file names sometimes differ in an obvious way. (The suffix X in Linux/Solaris file names indicates the version number.) All of these files (with the exception of your particular license file, xpauth.xpr) should be taken from the current Xpress release distribution. See note 9 below for an explanation of the UNIX symbolic links required for UNIX installations.
An Optimizer application requires the files
Windows Linux/Solaris Notes Optimizer library xprs.dll libxprs.so.* Optimizer library Java wrapper javaxprs.dll libjavaxprs.so (Java and MATLAB Java only) Xpress support library xprl.dll libxprl* MATLAB interface xprs*.mexw* xprs*.mex* (MATLAB only) Knitro library xknitro.dll xknitronl.dll libiomp5md.dll libxknitro.so.* libxknitronl.so.* (if required) License file xpauth.xpr xpauth.xpr - For a Python application, the xpress package from Pip or Anaconda must be installed in the Python environment containing your application. Please refer to the Python interface reference manual for installation instructions.
- For an R application, the xpress package must be installed in the R environment containing your application. Instructions for installing this package can be found in the R/INSTALL.txt file in your Xpress installation.
- For a .NET application, you would require either the the FICO.Xpress.XPRSdn.*.nupkg package or the xprsdn.dll file from within it, depending upon how you distribute your application. NuGet packages for Xpress are not available through online package repositories. Xpress .NET libraries can be used on Windows and Linux platforms only. It is not recommended that you use the xprsdn.dll file included in the bin folder of the Xpress installation; this is included for backwards compatibility reasons and can only be used on Windows as it targets .NET Framework 3.5.
An application outsourcing optimization solves to the Xpress Insight Compute Interface requires additional files
Optimizer Webservices client library xprsws.dll libxprsws.so.* Curl library libcurl.dll libcurl.so.* Jansson library jansson.dll libjansson.so.* Libwebsockets library websockets.dll libwebsockets.so.* OpenSSL libraries libcrypto*.dll libssl*.dll libcrypto.so.* libssl.so.* Zip library libzip.dll liblibzip.so.* A Mosel (run-time library) application requires the files
Optimizer library xprs.dll libxprs.so.* (if required, see additional dependencies below) Mosel library xprm_rt.dll libxprm_rt.so.* Mosel executable mosel.exe mosel (required for remote connections or Mosel command line) Mosel library Java wrapper xprm_rtJ.dll libxprm_rtJ.so.* (Java and MATLAB Java only) Mosel compiler library xprm_mc.dll libxprm_mc.so.* (if required, e.g. by executable) Mosel compiler library Java wrapper xprm_mcJ.dll libxprm_mcJ.so.* (Java only; if required) Mosel library .NET wrapper helper DLL xprndn-c- helper.dll libxprndn-c- helper.so (Windows/Linux .NET only) MATLAB interface moselexec.mexw* moselexec.mex* (MATLAB only) National language support xprnls.dll libxprnls.so Mosel modules or packages used XXX.dso XXX.bim XXX.dso XXX.bim (as required, see additional dependencies below) VB library extensions xprmvb.dll N/A (VB only) Xpress support library xprl.dll libxprl.* License file xpauth.xpr xpauth.xpr - For a .NET application, you would require either the the FICO.Xpress.XPRMdn.*.nupkg package or the xprmdn.dll file from within it, depending upon how you distribute your application. NuGet packages for Xpress are not available through online package repositories. Xpress .NET libraries can be used on Windows and Linux platforms only. It is not recommended that you use the xprmdn.dll file included in the bin folder of the Xpress installation; this is included for backwards compatibility reasons and can only be used on Windows as it targets .NET Framework 3.5.
Certain Mosel modules or packages have additional dependencies, so these files also need to be provided if you use the specified component:
aec2.bim mmjobs.dso mmhttp.dso mmssl.dso mmsystem.dso mmxml.dso Windows: mplink.exe mpscp.exe dmp.dso mmhttp.dso mmsystem.dso Windows: jansson.dll Unix: libjansson.so.* executor.bim mmjobs.dso mmhttp.dso mmxml.dso mmsystem.dso executor.dso Windows: jansson.dll Unix: libjansson.so.* fssappstudio.bim mmxml.dso mmsystem.dso kalis.dso Windows: Kalis.dll xprs.dll (Windows and Linux) Linux: libKalis.so libxprs.so.* libstdc++.so.* libgcc_s.so.*+ matlab.dso (MATLAB installation required) mmhttp.dso mmjobs.dso mmsystem.dso mminsight.bim mminsight.dso mmxprs.dso mmxml.dso mmsystem.dso mmhttp.dso mmjobs.dso trusteddsn.dso mmssl.dso s3.dso s3.bim debugarchive.bim mminsightannotations.bim mmjobs.dso Windows: xprm_mc.dll Unix: libxprm_mc.so.* mmoci.dso (Oracle Instant Client installation required) mmrobust.dso mmxprs.dso Windows: xprs.dll / Unix:libxprs.so.* mmsheet.dso Windows: libxl.dll (Windows, Linux, OSX) mmssl.dso mmsystem.dso Windows: LIBEAY32.dll SSLEAY32.dll Unix: libssl.so.* libcrypto.so.* mmsvg.bim mmsystem.dso mmjobs.dso mmxml.dso mmsvg.tgz mmxml.dso mmsystem.dso mmxnlp.bim mmxprs.dso mmnl.dso mmjobs.dso mmsystem.dso mmxnlp.dso Windows: xprs.dll / Unix: libxprs.so.* Knitro solver (optional): Windows: xknitro.dll xknitronl.dll libiomp5md.dll Unix: libxknitro.so.* libxknitronl.so.* mmxprs.dso Windows: xprs.dll / Unix: libxprs.so.* nlsolv.dso Windows: amplxpress.exe xprs.dll Unix: amplxpress libxprs.so.* python3.dso (Python 3 installation required) r.dso (R installation required) s3.bim mmjobs.dso mmssl.dso mmxml.dso mmsystem.dso mmhttp.dso s3.dso Windows: jansson.dll Unix: libjansson.so.* zlib.dso Unix: libz.so.* (no extra dependency on Windows) mmssl executable Windows: mmssl.exe / Unix: mmssl (required for https setup) xprmsrv executable Windows: LIBEAY32.dll ssh.dll Unix: libssh.so.* libcrypto.so.* (for remote connections) If you are using a floating license, you also need these files:
Xpress license manager xpserver.exe xpserver License state query tool xplicstat.exe xplicstat OpenSSL libraries libcrypto*.dll libssl*.dll libcrypto.so.* libssl.so.* - Copy all of the Xpress files listed above to one directory on your end-user's computer. This can be any directory, but we strongly recommend that you use the directory containing your application program.
If you are building a runtime distribution for Mosel applications we recommend that you maintain the same subdirectory structure (with directories bin, dso, lib, and if you are using MATLAB also matlab) as the original Xpress distribution. - Windows libraries: Add the directory containing the Xpress files to the Windows PATH, so that Windows knows where to find the Xpress DLLs.
- Unix libraries: Add the directory containing the Xpress libraries to the environment variable for locating shared libraries on your platform (LD_LIBRARY_PATH for Linux and Solaris, DYLD_LIBRARY_PATH on macOS).
- Windows licensing: Copy the Xpress license file, xpauth.xpr, into the directory containing the Xpress DLLs. If you store the license file in a different location, set the XPAUTH_PATH environment variable to its full path. It is not recommended to store the license file in a different location, because it adds to the complexity of the Xpress licensing procedure and makes it difficult to support your application on your end-user's computer. For the same reason, it is not recommended to specify the location of the license file by passing an explicit path argument (to XPR?license or XPR?init) when initializing Xpress.
- Unix licensing: Set the environment variable XPAUTH_PATH to the full path to the Xpress license file, xpauth.xpr.
Note: Previous releases of Xpress used the XPRESS environment variable to locate the license file. This is now deprecated in favour of the XPAUTH_PATH environment variable. When upgrading, please ensure that any installation scripts, application code and documentation is updated to use XPAUTH_PATH instead of XPRESS.
- If you are using Mosel, set the environment variable MOSEL_DSO to point to the directory containing the Mosel DSO files.
- Unix symbolic links: The tar file distributions contain symbolic links e.g. libxprs.so.17.10.01 -> libxprs.so.17.10 -> libxprs.so ( .so extension may vary between UNIX platforms).
In the example above, the binary file has the full version number postfixed to enable the support team to easily identify the exact version number being used. The intermediate filename without the 3rd element of the version number is used internally by one Xpress component to link to another. The link with no version number is used to support the version-independent documentation, examples and example makefiles.
In general, it is possible to remove the soft links and rename the libraries, with the following exceptions. The security library must be made available as libxprl.so.yyyy for all Xpress components to use. If any components ( including Xpress Optimizer console ) other than the Xpress Optimizer runtime library are to be used then the Xpress Optimizer runtime library must be made available as libxprs.so.xx.yy .
Dongles
- If you are using Xpress dongles, you must install the dongle driver on your end-user's computer. You can obtain the files necessary to do this from the fico.com website:
- For HASP dongles on Windows, you need the file
\windows\dongle\hasp\hinstall.exe
Administrator privileges are required to install the dongle driver. To install the driver, executehinstall -i -criticalmsg
The driver does not normally start up until the computer is re-booted. - For HASP dongles on Linux you need the file HDD_Linux_dinst.tar.gz (available from the Xpress client area download page); to install the dongle driver daemon you must uncompress this archive somewhere convenient, switch to your superuser account and run the supplied dinst shell script.
- For HASP dongles on Windows, you need the file
Floating Licenses
- Users with floating licenses: make sure the Xpress license manager is installed and running on the server machine. Please refer to the chapter FICO Xpress Licensing for full instructions and troubleshooting. If you wish to install the license server as a service on Windows machines, run xpserver -service install and to remove the service, xpserver -service remove
- Users with floating licenses: when creating your installer for the client machines you will have to construct an xpauth.xpr file for connecting to the server. This file should contain one line as follows:
use_server name="<servername>"
Where <servername> is the name of the license server machine. You may wish to prompt the user for this information as part of the install process.
© 2001-2025 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.