Font Failing to Uninstall with Keyman

Hello, we were previously deploying a version of Keyman with the Cree keyboard that had a problem with the font. The font package was fixed and it is working now (Font Changing While Typing).
But now when I try and push the newest version of Keyman with the new Cree Keyboard, I noticed that the corrupt font remains on the computer it is not being replaced by the new one.

I have also tried completely uninstalling Keyman and reinstalling it and the previous font is still there.

At the moment I am unable to deploy the new Keyman because of this newest problem. Can anyone help?

Because we had to change font name it doesn’t automatically uninstall the old font. The home page says this “Please uninstall any older versions before installing this package.” Maybe I need to clarify that. You should manually uninstall the old font. Then, you can install the new package and it should properly install the new version of the font.

That’s what I thought and I did remove the old font before reinstalling Keyman with the new keyboard. The keyboards were there but the new font would not install. I had to manually install the new font.
Also uninstalling manually the old font would a problem for us, since we have around 5000 devices. We are using MECM to do the installations because it is not possible for us to do the installation manually. Is there not a way that the reinstall of Keyman could possibly remove the old font?

Uninstalling Keyman does not remove fonts automatically.

It is possible to ask Keyman to uninstall a package and remove the fonts associated with the package with the IKeymanPackageInstalled::Uninstall method.

In VBA you’d do something like this:

dim kmcom, package
Set kmcom = CreateObject("keymanapi.Keyman")
n = kmcom.Packages.IndexOf("SamplePackage")
if n >= 0 then
  Set package = kmcom.Packages(n)
    package.Uninstall(True)
end if

Changing Keyman to remove the font with the Keyman uninstaller itself is not possible. You need to uninstall the package first with the RemoveFonts=true parameter and then uninstall Keyman.

If you are scripting your installation then you should be able to script removal of the old font as well. I am not an expert in MECM so cannot really advise you on how to integrate this, but using Windows Scripting, something like the following blog might help: Microsoft Installer: MSI: Uninstall Fonts through VBScript

Is there a way that we could get the font package to have it installed after the uninstall of the previous one?

I’m sorry, I don’t really understand the question – I think I am missing some context. Once you have run the uninstall script for the old font, you can just deploy the new package?

I have tried that but when I install Keyman that has the new package the font doesn’t install. I have to install it manually every time.

If you install the package on a computer directly, does the font install?

I’m really just guessing without technical data – logs, etc. It might be best if we can organise a remote support session with one of our team to investigate installation on one of the computers with you. Otherwise it’s just a guessing game and that’s not productive.

Hi Marc,

No the font doesn’t install with the installation of the package after I’ve removed the previous font.
I’ve tried many times and every time it’s the same thing. I have to install the font manually after installing Keyman.

Respectfully, we are just going around in circles right now.

Unless you can provide us with some log files (e.g. files from %appdata%\Keyman\Diag folder, your deployment system logs), I don’t think we can help you.

Here are the logs I found for the day I was testing.
Keyman Logs.zip (432.3 KB)

Thank you for the logs. I have reviewed them and there were no errors relating to the font installation reported. Can we setup a remote support session with you to investigate the issue directly on an affected computer?

Yes that would be helpful.
I need to start deploying but I’m delaying it because of this error.

Note: we are organizing a remote support session via private message.