Just ran into this while trying to diagnose why .rhi does not work on my win10 machine (Rhino 5 & 6 are installed, 7 has never been). Found posts here about RhiFix.exe and tried it multiple times, with reboots in-between just to be sure, to no avail. Then found this topic, and confirmed that .rhp was opening with Rhino 5. Tried to associate .rhp with Rhino 6 multiple times (both via Explorer > Open With and Windows Settings > Default Apps), still no dice – they continued to be opened in Rhino 5. So, time to root around the registry, where for .rhp I find this:
Scrolling down, and renaming those:
Now .rhp opens successfully with Rhino 6 from Explorer, but .rhi is still not working. Run RhiFix.exe yet again, still no change. Reboot, still not working. Repair Rhino 6, still rhiexec complains:
Checking Rhino 6 > File > Properties > Updated & Statistics, it reports “This Rhino is up-to-date.” Help > About Rhinoceros reports Version 6 SR20
(6.20.19322.20361, 11/18/2019), and Properties > Details for C:\Program Files\Mcneel\Rhino Installer Engine\x64\rhiexec.exe reports File Version 6.20.19322.20361.
The .rhi I am testing with contains only my .rhp, which works fine, and which ILSpy confirms as referencing RhinoCommon and Rhino.UI version 6.20.19322.20361. Just to be sure, the .rhp is not in any subdirectory in the zip, and the .rhi is created just by right-clicking the .rhp > Send To > Compressed (zipped) Folder, and renaming to .rhi, to rule out issues potentially caused by a 3rd-party zip program.
So what next … let’s figure out if we can get any info from rhiexec. Try rhiexec /? in a command prompt, nothing. Use ILSpy to see whether there may be a log. Looks like there should be, so use procmon to see where rhiexec is writing to, turns out to be appdata/roaming/mcneel/rhinoceros/6.0/logs. Open the associated log to find the reason it is not working:
12/06/2019 08:04:07 4364 Info Initializing Initializing Installer (0%)
12/06/2019 08:04:07 7832 Error Exception: System.IO.FileLoadException
Message: Cannot resolve dependency to assembly 'bella_dotnet, Version=220.127.116.11, Culture=neutral, PublicKeyToken=null' because it has not been preloaded. When using the ReflectionOnly APIs, dependent assemblies must be pre-loaded or loaded on demand through the ReflectionOnlyAssemblyResolve event.
StackTrace: at System.ModuleHandle.ResolveMethod(RuntimeModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
at System.ModuleHandle.ResolveMethodHandleInternalCore(RuntimeModule module, Int32 methodToken, IntPtr typeInstantiationContext, Int32 typeInstCount, IntPtr methodInstantiationContext, Int32 methodInstCount)
at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, RuntimeTypeHandle typeInstantiationContext, RuntimeTypeHandle methodInstantiationContext)
at System.Reflection.CustomAttributeData..ctor(RuntimeModule scope, CustomAttributeRecord caRecord)
at System.Reflection.CustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
at System.Reflection.CustomAttributeData.GetCustomAttributesInternal(RuntimeAssembly target)
at RhiExec.PluginInfo.GetPluginAttributes(AsyncReporter reporter)
at RhiExec.PluginInfo.InspectPlugin(String rhp_file, AsyncReporter reporter)
at RhiExec.InstallerPlugin.InspectPlugin(String PathToPlugin, AsyncReporter reporter)
at RhiExec.Program.Main(String args)
So of course it cannot install my rhp because it cannot load a dependency. But I try again with an .rhi with the necessary dependencies, and it still does not work. Look around a bit more and find appdata/local/temp/rhiexec, which appears to be where rhiexec puts .rhp files to install them, and looking in the temporary directory that is created while rhiexec is running, I see it contains only my .rhp, and not any of its dependencies. So I guess that is the reason.
I hope it helps.