Added internal class PrivateAssemblyStore to Starcounter.Hosting.
Added TODO comment on that we must not forget to fix the case where an application can be loaded in a host as a library/dependency.
Added class AssemblyResolver to Starcounter.Hosting, as a step in outlining the new design of assembly loading and assembly reference resolving in the code host.
Continuous outlining of new the model in the code host that will be responsible for assembly loading and reference resolving.
Continouous work on implementing the PrivateAssemblyStore class.
Continouous work on implementing the AssemblyResolver class.
Extended class PrivateAssemblyStore to record application directories recorded and allow clients to consult these with new method IsApplicationDirectory.
Outlined the steps we need to take in AssemblyResolver.ResolveApplicationReference.
Further work on the AssemblyResolver. It's now in a stage where it can match application executables against already loaded ones, and resolve such a case.
Implemented AssemblyResolver.MatchByIdentity, the heart of our decided matching algorithm to see if an assembly that needs to be resolved is considered semantically equal or not. This first implementation use the major version and the public key to determine.
Redesigned the internal structure of the PrivateAssemblyStore class and added and implemented method GetAssemblies, that allows a client to get a list of assemblies known to a certain store, based on their simple name.
Made first working implementation of the new assembly resolving algorithm, still very trivial though.
Added a few strategic tracing calls in the new AssemblyResolver, to be able to diagnose how it operates.
Changed the assembly resolver to use AssemblyName.ReferenceMatchesDefinition when matching assembly names.
Changed AssemblyResolver.MatchByIdentity to a simplified first version, that identify matches only on major version, no longer considering assembly signing. This method will likely have to evolve in time.
Changed the Loader class (Starcounter.Hosting) to use the new assembly resolver instead of the old. The new resolver is still not yet 100% feature-complete, but at least support everything the older version did.
Added method PrivateBinaryFile.IsFromApplicaionDirectory and refactored the PrivateAssemblyStore to carve out the directory path comparison algorithm to a dedicated method.
Implemented the first branch condition of the assembly resolver method responsible for picking the best matching assembly to load.
Refactoring only: PrivateBinaryFile.Path -> PrivateBinaryFile.FilePath.
Completed the AssemblyResolver algorithm that picks what assembly to load from a set of assemblies known to the host.