speckleworks / SpeckleCore

Check a brand new Speckle at: https://github.com/specklesystems
https://speckle.systems
MIT License
38 stars 17 forks source link

SpeckleKits Loading Directory #135

Closed didimitrie closed 4 years ago

didimitrie commented 4 years ago

Step 0:

From @DeanGiddy:

I see that SpeckleCore loads its assemblies from AppData/Local/SpeckleKits

Is it a presumption of all Speckle clients that are using SpeckleCore that it loads its assemblies from this path?

And is there any current methodology for loading it’s assemblies from elsewhere? (A compiled build that contains the assemblies itself ). Only because we are investigating in the ability to send an executable around for people to use, and don’t explicitly want to rely on having assemblies sitting in a set path.

didimitrie commented 4 years ago

Kits, in the current form, will always need to be loaded from a path i’m afraid.

I would test here and see if you can trawl the current AppDomain’s loaded assemblies for any kits already - this proved to be sometimes tricky, as the CLR sometimes doesn’t load referenced assemblies until they’re actually needed, so it might backfire in the context of a first load.

Alternatively, I wouldn’t mind being able to specify in the speckle core initialiser an optional path from where to load those assemblies, with a default to the current one.

If that solves your problem, PR away!

didimitrie commented 4 years ago

closing as you can now specify the path from where to load kits. see https://github.com/speckleworks/SpeckleCore/blob/master/SpeckleCore/ModuleInitializer.cs#L30