Beispiel #1
0
        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);
		}
Beispiel #3
0
        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)));
        }