Details
-
Task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.4-incubating
-
None
Description
In this code, there are several instances of:
- Assembly.Load*
- Assembly.ReflectionOnlyLoad
- AppDomain.CurrentDomain.Load
These can be problematic because they load everything into the current domain of the visual studio addin and may cause a problem over the life of the application (either by memory usage, or by conflicting with other paths). For example, trying to use ReflectionOnlyLoadFrom with two different paths had caused a problem in NPANDAY-445, as the references appeared in c:\program files\reference assemblies but others appeared in the GAC.
Conversely, there is a lot of use of the gacutil output to figure out what is in the GAC instead of using the above.
Instances of either that aren't needed should be avoided (e.g. by reducing the need to distinguish which type of GAC is used - see NPANDAY-255). In others they should be rationalised to a single location, and preferably loaded into a separate domain that can be disposed of when no longer needed (or the information gleaned without having to load the assembly in the first place).