How to handle cygwin DLL conflicts with NX Client 3.5.0 tools
This article applies only to software up to version 3.5.0. NoMachine 4 has completely removed the Cygwin compatibility layer used to run NX components on Windows (http://www.nomachine.com/FR03F02034).
Conficts occurs when there are multiple copies of cygwin DLL on the system. This may prevent the NX Client 3.5.0 components from starting.
How can NX Client help me solve such conflicts?
Starting from version 3.0.0, NX Client allows the end-user to try to replace either the cygwin1.dll present on the system or the cygwin1.dll provided by the NX Client installation in order to grant a unique version of the DLL on the system.
NX Client provides the following dialog message with the purpose of letting you choose which DLL you would like to replace:
NX Client has detected a possible conflict with DLL cygwin1.dll.
If DLL versions are compatible, you can let NX Client replace the
system DLL with the version included in the client package or let
the client use the system DLL. The replaced file will be renamed
cygwin1.dll.backup. Rebooting is also suggested if you are unable
to run your application.
[ Replace system DLL ] [ Use system DLL ] [ Cancel ]
What happens if a backup of cygwin1.dll is already present?
NX Client verifies if a file named as cygwin1.dll.backup is already present in the cygwin installation directory when Replace system DLL is selected, or in the system NX directory when Use System DLL is chosen. If this file is present, the client provides the following dialog message:
A DLL backup file is already present. If you choose to continue,
this backup file will be preserved and the current cygwin1 DLL
will be renamed as cygwin1.dll.backup-n where n is a progressive
number.
[ Continue ] [ Cancel ]
If I choose to replace one of the DLLs, will I be able to revert to the original one?
Yes. NX Client creates a copy of the original DLL before proceeding with the
replacement. If you want to revert to the original DLL, search for cygwin1.dll.backup using the Windows Start->Find/Search facility and:
- Rename cygwin1.dll to, for example, cygwin1.dll.replaced
- Rename cygwin1.dll.backup to cygwin1.dll
What is the difference between 'Replace system DLL' and 'Use system DLL'?
If you choose 'Replace system DLL', NX Client will:
-
Search the cygwin DLL on the system, usually in x:cygwinin,
where 'x' is the drive on which you have installed the cygwin distribution. - Rename x:cygwinincygwin1.dll to x:cygwinincygwin1.dll.backup.
- Copy cygwin1.dll provided by the NX Client installation to x:cygwinin.
If you choose 'Use system DLL', NX Client will:
- Search the cygwin DLL on the system, usually in x:cygwinin.
-
Rename the DLL provided by the NX Client installation, usually C:Program FilesNX Client for Windowsincygwin1.dll to
C:Program FilesNX Client for Windowsincygwin1.dll.backup. - Copy the system DLL, x:cygwinincygwin1.dll, to the NX Client installation C:Program FilesNX Client for Windowsincygwin1.dll.
What will happen if I choose 'Cancel'?
NX Client will not try to handle the cygwin conflict and will notify you
about the fact that the NX Client components can't be started:
Cannot start one or more components of NX Client.
This problem is probably due to using incompatible
versions of the cygwin DLL.
In this case, the NX Session may fail to start with error:
Cannot initialize the display service.
Should I reboot after having replaced the DLL?
If either NX Client or your cygwin application doesn't work as expected, you may need to reboot to ensure that all the applications requiring the cygwin1.dll are using the same version of DLL.
And what can I do if replacing DLL and rebooting is not enough?
When the versions of cygwin DLL are not compatible, either NX Client or the cygwin application may cease to work. This can happen, for example, if your
cygwin installation is too old compared with the DLL version provided by
the NX Client package. In this case you need to upgrade your cygwin installation
to a newer version.
