Skip to content
This repository has been archived by the owner on Jan 5, 2025. It is now read-only.

Harmony v0.9.21 flags later updated libs as unsupported #19

Open
drok opened this issue Jan 25, 2022 · 0 comments
Open

Harmony v0.9.21 flags later updated libs as unsupported #19

drok opened this issue Jan 25, 2022 · 0 comments
Milestone

Comments

@drok
Copy link
Owner

drok commented Jan 25, 2022

When Harmony v0.9.21 is active, and another more updated version is present but disabled, v0.9.21 flags the later instance as unsupported. This is wrong. Steps to reproduce:

  • unsub the Steam Release Channel (SRC) Harmony.
  • install Harmony from the Github Release Channel (GRC).
  • enable the GRC
  • disable the GRC (this sets the "no further auto-enables" flag)
  • subscribe the SRC Harmony (this is v0.9.21)
  • enable SRC (updated GRC remains disabled)

In this case, the active v0.9.21 will throw the following error:

HarmonyModSupportException: Unsupported HarmonyLib implementations: 0Harmony[2.0.400.0]
  at HarmonyMod.Patcher.ImplementAdditionalVersionSupport (Boolean needHarmon1StateTransfer) [0x00000] in <filename unknown>:0 
  at HarmonyMod.Mod.IAwareness.IAmAware.OnHarmonyAccessBeforeAwareness (Boolean needHarmon1StateTransfer) [0x00000] in <filename unknown>:0 
  at HarmonyLib.Harmony+<>c.<get_isEnabled>b__28_2 (System.Type p) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.Any[Type] (IEnumerable`1 source, System.Func`2 predicate) [0x00000] in <filename unknown>:0 
  at HarmonyLib.Harmony.get_isEnabled () [0x00000] in <filename unknown>:0 
  at HarmonyLib.Harmony..ctor (System.String id, System.Reflection.MethodBase _caller) [0x00000] in <filename unknown>:0 
  at HarmonyLib.Harmony..ctor (System.String id) [0x00000] in <filename unknown>:0 
  at FindIt.Patcher.PatchAll () [0x00000] in <filename unknown>:0 
  at FindIt.ModInfo+<>c.<OnEnabled>b__9_0 () [0x00000] in <filename unknown>:0 
  at CitiesHarmony.API.HarmonyHelper.DoOnHarmonyReady (System.Action action) [0x00000] in <filename unknown>:0 
  at FindIt.ModInfo.OnEnabled () [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ColossalFramework.Plugins.PluginManager.AddPlugins (System.Collections.Generic.Dictionary`2 plugins) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ColossalFramework.Plugins.PluginManager:AddPlugins(Dictionary`2)
ColossalFramework.Plugins.PluginManager:LoadPlugins()
Starter:Awake()

This happens the first time the Harmony Mod checks the loaded assemblies looking for unrecognized versions. Versions signed by the same public key should be assumed to be backwards compatible and not unsupported.

@drok drok changed the title Harmony v0.9.21 flags later updated as unsupported Harmony v0.9.21 flags later updated libs as unsupported Jan 25, 2022
@drok drok added this to the 0.10 milestone Jan 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant