kungfooman / appstract

Automatically exported from code.google.com/p/appstract
0 stars 0 forks source link

Create a more efficient and reliable system to interact with the GAC #5

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
The EasyHook library is provided with functionality guaranteeing the GAC 
is cleaned each time the installed dll's aren't needed anymore. EasyHook 
achieves this by running an instance of the EasyHookSvc.exe.
This results in AppStract needing 3 processes to run a virtual application
 - the host process (AppStract.Manager.exe or AppStract.Host.exe)
 - the guest process (the virtualized application)
 - an EasyHookSvc.exe process

This has 4 major disadvantages:
 1) An extra library requirement is introduced (for EasyHookSvc.exe)
 2) The need for 3 processes is a relativly expensive requirement
 3) The EasyHookSvc library can't be easily expanded and debugged
 4) The EasyHookSvc library can't easily use the same log functionality as 
shared by the server and guest process

But also, in some rare cases the EasyHookSvc.exe might crash unexpectedly 
while the guest process is still running. This means libraries are left in 
the GAC, which might result in the AppStract system becoming unstable and 
even unusable on the users operating system, until a system administrator 
is able to clean the assemblies from the GAC.

In order to make all of this more efficient and reliable, the following 
steps have to be taken:
 1) Analyze the functionality provided by the EasyHookSvc library
    a) Determine whether this functionality should be moved to a more 
suitable library
    b) Determine which process should be responsible for installing 
assemblies in the GAC and/or removing assemblies from the GAC.
 2) Implement the conclusion

Original issue reported on code.google.com by simon.al...@kahosl.be on 19 Oct 2009 at 1:31

GoogleCodeExporter commented 9 years ago

Original comment by simon_al...@hotmail.com on 19 Oct 2009 at 1:40

GoogleCodeExporter commented 9 years ago

Original comment by simon_al...@hotmail.com on 19 Oct 2009 at 2:00

GoogleCodeExporter commented 9 years ago
Fixed in rev160
- Added AssemblyCache, a managed API for interaction with the GAC
- Added CleanUpInsurance, a system insuring a clean GAC
- Added FrmCleanUp, a winform allowing the user to clean his system

Cleaning the system should maybe not be a responsibility of the user,
but this can be decided when redesigning the UI.

Original comment by simon_al...@hotmail.com on 12 Nov 2009 at 11:32