TN 3689: Windows Client installer fails with "network error" message

Running the Windows MSI installer (extracted from K2Client.exe) with a non-standard name will cause subsequent installs to fail.

2008.09.30 (reviewed)

When trying to install KeyAccess, you may see an error similar to:

A network error occurred while attempting to read from the file:
C:\Users\user\AppData\Local\Temp\labmachines.msi

This means that at some point in the past, you installed KeyAccess from an MSI that had been renamed from the default (KSClient.msi).

The KSClient.msi installer has an internal numeric value that identifies it to Windows. If a site changes the file name from KSClient.msi to anything else (e.g., labmachines.msi) before first install, the program runs fine and the client is installed. However, Windows remembers both the internal and external name of an .msi file used to install a program. If an installer with the same internal name is subsequently run with a different external name on that computer, Windows blocks the install because the external names (previous install vs. current) do not agree.

So, if a KeyAccess MSI installer was renamed in the past, and then an attempt is made to install a subsequent revision of the client using an installer with the default name of KSClient.msi, Windows will display this error because the internal numeric name is already assocated with the changed name (labmachines.msi).

The simplest solution is to change the name of the newer .msi (not the K2Client.exe but the embedded KSClient.msi) to what Windows is expecting. To do so, you would need to extract the MSI from the exe using k2clientconfig.exe, then rename it to the same name seen in the error message.

Since this means the administrators have to remember to do this every time the client is updated, the preferred long term solution is to uninstall the client and reinstall using the default name, which will prevent the problem from occuring at each future upgrade.

Note that the KeyAccess client installer (KSClient.msi) may be embedded within the K2Client.exe executable, or it may have been extracted-- this note applies to either case.