Note that there are some explanatory texts on larger screens.

plurals
  1. POUninstall from GAC In C# code
    text
    copied!<p>How do I uninstall the GAC from my C# application.</p> <p>I am not able to uninstall, the particular exe and DLL from GAC.</p> <p>Is it the proper way to uninstall the GAC in C# ?</p> <pre><code>public void RemoveAssembly(string ShortAssemblyName, string PublicToken) { AssemblyCacheEnum AssembCache = new AssemblyCacheEnum(null); string FullAssembName = null; for (; ; ) { string AssembNameLoc = AssembCache.GetNextAssembly(); if (AssembNameLoc == null) break; string Pt; string ShortName = GetAssemblyShortName(AssembNameLoc, out Pt); if (ShortAssemblyName == ShortName) { if (PublicToken != null) { PublicToken = PublicToken.Trim().ToLower(); if (Pt == null) { FullAssembName = AssembNameLoc; break; } Pt = Pt.ToLower().Trim(); if (PublicToken == Pt) { FullAssembName = AssembNameLoc; break; } } else { FullAssembName = AssembNameLoc; break; } } } string Stoken = "null"; if (PublicToken != null) { Stoken = PublicToken; } if (FullAssembName == null) throw new Exception("Assembly=" + ShortAssemblyName + ",PublicToken=" + token + " not found in GAC"); AssemblyCacheUninstallDisposition UninstDisp; AssemblyCache.UninstallAssembly(FullAssembName, null, out UninstDisp); } public static void UninstallAssembly(String assemblyName, InstallReference reference, out AssemblyCacheUninstallDisposition disp) { AssemblyCacheUninstallDisposition dispResult = AssemblyCacheUninstallDisposition.Uninstalled; if (reference != null) { if (!InstallReferenceGuid.IsValidGuidScheme(reference.GuidScheme)) throw new ArgumentException("Invalid reference guid.", "guid"); } IAssemblyCache ac = null; int hr = Utils.CreateAssemblyCache(out ac, 0); if (hr &gt;= 0) { hr = ac.UninstallAssembly(0, assemblyName, reference, out dispResult); } if (hr &lt; 0) { Marshal.ThrowExceptionForHR(hr); } disp = dispResult; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload