I’m trying to figure out if there is a better way to keep track of versioning of GHA files in a way that is visible to whoever gets the GHA, without them having to first load the plugin to see what the build version is, or rename the GHA to .dll.
Currently, I keep track of the version of the GHA by writing to the version property of the DLL build. I make a duplicate DLL when I build from Visual Studio (basically the GHA before it has been renamed to “.gha”). I can then easily see what the version is, because “product version” is part of the DLL’s metadata. My other method, when looking at random GHA files that I want to know the version number for, is to rename them to “.dll” and look at the version number.
This is fine for me in my personal workflow, but when it comes to releasing the build to others, who may actually have more than one version of our software package, it gets dicey. For example, if our client has a desire to run a frozen version of our software and a work-in-progress version of our software, they must be very, very careful to know which version a GHA file is, and put it in the right folder on their computer, so they don’t mix up WIP and frozen versions. Instructing people to rename files to .dll and look at versions is kind of a non-starter. Currently our software does offer feedback as to the version when you open Grasshopper, but I want them to be able to see, from looking at the properties for the GHA, in Windows Explorer, what the version # is.
I currently would instruct our client to be extra careful about putting different versions of our software plugin in different folders on their computer, and then use GrasshopperDeveloperSettings to set a couple folders on their computer for the different versions of the plugin (which would have the same file-name because it seems that Grasshopper identifies duplicate plugins by file name only, as opposed to assembly Guid). Then they can get the “file conflict” error when opening Grasshopper and choose which version to use.
Any thoughts on this? Is there a less-convoluted and less user-error-prone way of doing things?