Don’t Panic! (and always carry a towel)
These instructions may seem complicated but they are provided to give you options and a deep understanding of the options and requirements.
CrossTalk supports xcopy deployment. This makes it often possible to deploy without any extra installation steps. No registry entries are needed, and CrossTalk does not use COM so there is no need for COM registrations.
Some prerequisites however may require installation packages such as the .NET Framework.
The following dependencies must be installed on the target machine.
- .NET Framework
- CrossTalk Libraries – A set of .dll files that are CrossTalk.
- Visual C++ 2015 Runtime (VCRT) – Microsoft provided library.
- Universal C Runtime (UCRT) – Microsoft provided library.
- User .NET Libraries (Optional) – You may have extra libraries that you have developed for use with CrossTalk in addition to those in the .NET Framework.
CrossTalk releases are built against the latest version of the .NET Framework. To decide which version of the .NET Framework is required, see the download page for the CrossTalk release that you are using. This .NET version defines the minimum version that you need. For example, if the CrossTalk release is built against 4.6.1, you can install 4.6.1 or any higher version (such as .NET 4.6.2).
Deploying requires an installation program. However many applications use .NET, and the chances that the end user may already have .NET. Windows installs the .NET Framework but it is often an older version depending on the version of Windows.
.NET is backwards compatible and CrossTalk applications can use .NET libraries for any .NET version back to and including .NET 1.1.
.NET is available as Client Profile and Full Profile. CrossTalk will work with either profile. Depending which .NET classes you use, you might not need Full Profile. The difference in download size is small. If in doubt use Full Profile. Client Profile has fewer libraries and does not contain some components which are primarily for servers.
The following CrossTalk libraries must be deployed in your application directory or somewhere in the path.
- CrossTalkMiddle32/64.dll – There are 2 versions of this .dll which correspond to x86 or x64. You need to deploy the one that matches the architecture of your Delphi application.
- Atozed.CrossTalk.Right.dll – Another CrossTalk library. This one is not specific to x86 or x64 and must always be deployed.
Visual C++ 2015 Runtime
The VCRT libraries consist of a few .dll files. There are two options for deploying the VCRT libraries.
The VCRT installer is the preferred deployment method because Windows Update will keep the libraries patched , and also ensures the user has UCRT installed.
During development you do not need to install VCRT libraries because the CrossTalk installer installs the VCRT libraries.
If you are deploying on a x64 version of Windows but your CrossTalk application is x86, you will need to choose the x86 download. If you will be doing both x86 and x64, you need to install both x86 and x64 versions.
Copy these files to your application directory:
These .dll files must be in the directory of the initial EXE. For applications this is easy. However if your project is a .dll file, the VCRT .dll files must exist in the directory of the EXE which uses your .dll file, which might not be the same place as your .dll file.
XCopy is not recommended because the libraries will not be updated by Windows Update. The preferred method is the VCRT installer.
Deployment in Visual C++ – CrossTalk uses the CRT Library Features and the Standard C++ Library. It does not need MFC or VC++ libraries.
Both the x86 and x64 versions of each file have the same names but are different. Be sure to deploy the one that matches the architecture of your CrossTalk application rather than that of the target system.
Universal C Runtime
The Universal C Runtime is needed by most applications built with C++ and Visual Studio 2015. Windows 10 UCRT, but earlier versions of Windows do not. UCRT is used by many applications, and your users may already have it. It is also available as part of Windows Update but is optional.
As part of your install you will need to check and install UCRT if it is not already present. There are two methods to install UCRT:
- Use the VCRT installer – If you used the VCRT installer instead of using xcopy, the VCRT installer will automatically check and install UCRT if needed.
- Install KB 2999226 – Download KB 2999226
If you have developed custom libraries you have two deployment options.
Application (EXE) directory
Simply copy the assemblies to the same directory as your EXE. This method is the simplest.
The Global Assembly Cache (GAC) allows use by all applications on a system and offers side by side versioning. However installing to the GAC requires extra steps and the assemblies must have a strong name.