internal void UninstallAddin(IProgressStatus monitor, string domain, string addinId, string addinFile, AddinScanResult scanResult) { AddinDescription desc; if (!GetAddinDescription (monitor, domain, addinId, addinFile, out desc)) { // If we can't get information about the old assembly, just regenerate all relation data scanResult.RegenerateRelationData = true; return; } scanResult.AddRemovedAddin (addinId); // If the add-in didn't exist, there is nothing left to do if (desc == null) return; // If the add-in already existed, the dependencies of the old add-in need to be re-analyzed Util.AddDependencies (desc, scanResult); if (desc.IsRoot) scanResult.HostIndex.RemoveHostData (desc.AddinId, desc.AddinFile); RemoveAddinDescriptionFile (monitor, desc.FileName); }
internal void UninstallAddin (IProgressStatus monitor, string addinId, AddinScanResult scanResult) { scanResult.AddRemovedAddin (addinId); string file = GetDescriptionPath (addinId); DeleteAddin (monitor, file, scanResult); }
internal void UninstallAddin(IProgressStatus monitor, string domain, string addinId, AddinScanResult scanResult) { scanResult.AddRemovedAddin (addinId); string file = GetDescriptionPath (domain, addinId); if (!fileDatabase.Exists (file)) { return; } // Add-in already existed. The dependencies of the old add-in need to be re-analized AddinDescription desc; if (ReadAddinDescription (monitor, file, out desc)) { Util.AddDependencies (desc, scanResult); if (desc.IsRoot) scanResult.HostIndex.RemoveHostData (desc.AddinId, desc.AddinFile); } else // If we can't get information about the old assembly, just regenerate all relation data scanResult.RegenerateRelationData = true; SafeDelete (monitor, file); string dir = Path.GetDirectoryName (file); if (fileDatabase.DirectoryIsEmpty (dir)) SafeDeleteDir (monitor, dir); SafeDeleteDir (monitor, Path.Combine (AddinPrivateDataPath, Path.GetFileNameWithoutExtension (file))); }