I maintain a Rhino plug-in called NewApp packaged with Yak.
When I do a clean install of version 0.0.10 everything works fine.
But when I update the package from 0.0.9 to 0.0.10 via Yak’s update mechanism, I get the following error at runtime:
System.TypeLoadException: Method ‘AddCurve’ in type ‘NewApp.Adapters.RhinoDocumentAdapter’ from assembly ‘NewApp, Version=0.0.0.11’ does not have an implementation.
What I’ve tried:
Uninstalling 0.0.9 first, then installing 0.0.10 works fine.
Confirming no assembly conflicts or multiple loaded versions.
Suspected cause:
Yak’s update process leaves old DLLs behind causing assembly conflicts and stale metadata.
Possibly the Package Manager does not fully replace old files on update.
It looks like Yak’s update process doesn’t fully remove old files, leaving behind stale DLLs from the previous version.
That leads to a mix of old and new assemblies, causing the runtime type load failure.
Can someone from the McNeel team help confirm if this is a known issue or if there’s a best practice for handling Yak package updates with changing DLL structures?
Any workaround, fix, or guidance would be greatly appreciated
Observe that Rhino throws the runtime error immediately on startup or when loading the plugin Error message:
System.TypeLoadException: Method ‘AddCurve’ in type ‘NewApp.Adapters.RhinoDocumentAdapter’ … does not have an implementation.
The Package Manager doesn’t completely uninstall version 0.0.9, leaving some DLL files behind in the packages folder. When version 0.0.10 is installed, these leftover files conflict with the newly installed DLLs (which have the same names), leading to assembly conflicts and runtime errors.
In other words, after an update, the system ends up loading a mix of old and new assemblies, which causes the System.TypeLoadException.
A clean uninstall of 0.0.9 before installing 0.0.10 resolves the issue, which further confirms that the update process is not properly cleaning up the previous version’s files.
Just checking if there’s any update on the Package Manager issue where version 0.0.9 doesn’t fully uninstall, leaving some DLLs behind in the packages folder. When 0.0.10 is installed, those leftover files cause assembly conflicts and System.TypeLoadException errors due to mixed versions being loaded.
A clean uninstall of 0.0.9 before installing 0.0.10 resolves the problem, which confirms that the update process isn’t properly cleaning up the old files.
Let me know if you’d like me to share a sample YAK package so you can reproduce and test it.
Hi @Anan_karki, thank you for following up. I apologise for not confirming this before, but I can’t find the “NewApp” package on the public package server. Can you please send me versions 0.0.9 and 0.0.10 of your package privately (to be used to investigate issue and then deleted). If you’d prefer not to share them then I’d certainly appreciate you putting together a sample package that exhibits the behaviour you’ve reported.