@stevebaer per your suggestion I’ve removed all NuGet packages for RhinoCommon and RhinoWindows while using Rhino.Inside. However unless I keep either the RhinoCommon or Grasshopper package our code fails to compile.
We rely on Mesh.MergeAllCoplanarFaces function. I think it was added in RhinoCommon v7 SR9.
But it looks like the RhinoInside pulls a much older RhinoCommon, do you have any workarounds to tell Rhino.Inside to pull the newest RhinoCommon?
@kike /@stevebaer thanks for any help you can be.
@will can you help me publish an update to Rhino.Inside to nuget that references newer assembly versions?
You’re welcome to continue using the setup that you were using in the past until we have the nuget package updated. It just seems a bit cleaner to use the nuget package.
It looks like NuGet defaults to using the “lowest applicable version” to resolve the dependencies. I’ll see if we can get NuGet to instead use the latest compatible dependency versions when installing the Rhino.Inside package.
For now, explicitly installing the versions of the RhinoCommon/Grasshopper packages is the right approach. I think the warning above can be resolved by also explicitly installing the matching version of the RhinoWindows package.
Couldn’t we create a Rhino.Inside 7.1 that had lowest applicable version of RhinoCommon of 7.1?
…and publish a new Rhino.Inside NuGet package for each stable release of Rhino, like we do for RhinoCommon, etc.? This may be the most straightforward approach actually…
The “lowest applicable version” dependency resolution seems to be part of Microsoft’s efforts to make all builds deterministic. We might be able to create a NuGet package that uses “floating” versions (i.e. “7.*”) to grab the latest versions of transitive dependencies during restore, but this leads into conversations about lock files… Maybe best avoided!
That’s what I was thinking we could try
Sounds great, that is what we do for our main app and related Nuget packages.
Thanks for the help guys.