Rhino 4.0 SR6 has been changed to operate differently when running in Windows Vista with User Account Control (UAC) enabled. These changes may result in problems with third-party plug-ins.
The change was made because of a growing number of reports of Rhino failing to start when User Account Control is enabled.
Unfortunately, it also changes how plug-ins interact with the system.
Symptoms:
Rhino 4.0 prior to SR6:
- Rhino 4.0 SR5b and older crashes during startup on Vista With UAC enabled.
- Rhino 4.0 SR5b and older fails to start, displaying the "Unable to communicated with license manager" error. Following instructions to enable the license manager does not help.
Cause:
Rhino 4.0 was originally written prior to the release of Windows Vista, and is compiled with Visual Studio 2005. This causes Windows Vista to detect Rhino 4.0 as a "Legacy Application" and to enable virtualization of some parts of the Windows registry and file system. To understand more about how User Account Control works, read http://technet.microsoft.com/en-us/magazine/2007.06.uac.aspx - be sure to read about file system and registry virtualization - they're keys to understanding what follows in this article.
We received a growing number of reports of problems starting Rhino 4.0 on Vista with UAC enabled. After many weeks evaluating these problems, we concluded that there were occasionally problems with both registry and file system virtualization in UAC. The problems were frequent enough that we decided to update Rhino to be Vista Aware, and thereby disable virtualization.
Solution:
In order to disable virtualization in Windows Vista, we added information to the manifest that is embedded in the Rhino 4.0 executable. Details on how we did this are outlined on MSDN: http://msdn.microsoft.com/en-us/library/bb756929.aspx
This makes it so that Rhino 4.0 SR6 is no longer running with virtualization of the file system or of the registry. This change has also been made to current Rhino 5.0 WIP releases.
Unfortunately, disabling registry virtualization broke several third-party plug-ins. We're working with the developers of each one to understand and fix the problems.
Side Effects:
Disabling virtualization means that Rhino 4.0 SR6 and all Plug-ins running under UAC:
- Cannot write to C:\Program Files
- Files written with previous service releases into the C:\Progam Files folder are now inaccessible because they were saved in the virtual store: C:\Users\\AppData\Local\VirtualStore\Program Files\
- Cannot write to HKEY_LOCAL_MACHINE\Software registry hive.
- Keys written with previous service releases cannot be read because they were saved in the virtual store: HKEY_ CURRENT_USER\Software\Classes\VirtualStore\MACHINE\Software
If your code does not handle the failure gracefully, it may cause unexpected results or crash.
Support: