GAC Temp and Tmp

I see people asking question about the Temp and Tmp directories under GAC.

Yes they are temporary directory fusion uses during GAC Assembly installation and uninstallation. Tmp is used for installation, and Temp is used for uninstallation.

The use of them is described in my article GAC Assemblies: Install and Uninstall.

The reason that fusion needs two temporary folders, is that fusion will always try to clean up the Temp directory used for uninstallation at the end of each installation/uninstallation. If fusion were to use the same temporary directory for installation and uninstallation, fusion may accidentally remove temporary files used by another assembly installation in progress.

Fusion does not clean up Tmp directory (used for installation). When an installation failed, fusion tries to remove the temporary directory it created during the installation. It does not touch anything else, for the same reason above.

Usually you should not see anything in Tmp unless during assembly installation. You may see things under Temp. When fusion is asked to uninstall an assembly, if the assembly is in use, fusion will be able to move the assembly to the Temp directory, but won't be able to delete it. That is OK though. Next time when get a chance, fusion will try to clean up that directory.