Automate Upgrade of Rhino with CounterSketch


We are trying to automate a silent upgrade of CounterSketch Studio and Rhino 5 to 64 bit. I am writing code to automate the installation of the Rhino MSI and then the CS installer.

Is there a way to extract the users Serial Key from their current installation in order to feed it to the MSI during the installation of the update so that we do not have to have the Rhino Installer prompt for the key?

Thanks for any help you can be.

Jake Stevenson

Hi Jake,

You can get Rhino’s serial number at runtime using Rhino.RhinoApp.SerialNumber. But there is no way to get the serial number outside of Rhino, that I know of…

– Dale

1 Like

Excellent! Thank you! I’ll give that a shot.

This doesn’t appear to be the serial key that the install requires. Is there a way to get the cd key for the installation at runtime or otherwise? We are trying to feed this number directly to the .msi file for a silent install.

Sorry no.


I have changed our installer to prompt for the user’s license key for Rhino; and we are feeding that to the MSI during installation.

We have noticed though that when we put our key into the installer, that when we get to the license key step of the install that the values we entered are missing the first 5 or 6 characters, but the installer completes without error.

Also entering the sample you specify in your automation instructions of RMA_CDKEY=AAAABBBBCCCCDDDDEEEE that the installer also completes without error.

So what state does that put the user’s installation in, will it become invalid if they enter an incorrect key, at some point?

Is this an intended behavior?

Here are the instructions I am following:

@brian, can you add any wisdom here?

When you pass RMA_CDKEY on the command line to msiexec, are you passing “RH50-” at the beginning? Does the Rhino license key include hyphens or not?

I am following the instructions in this link for automation: Automating Installation of Rhino 5 [McNeel Wiki]

We are passing a 20 character key without any dashes, excluding the RH50 text.

I’m curious if it works if you pass a 24-character key string that includes the RH50, or a 29-character string including the hyphens? I vaguely recall there being code in the license parser that treats 20-character keys differently because we once shipped 20-character keys, including the RH** prefix.

I’ll try it and let you know.