public AddinDescription GetAddinDescription (IProgressStatus progressStatus, string file)
{
if (currentDomain == AddinDatabase.UnknownDomain)
return null;
string outFile = Path.GetTempFileName ();
try {
database.ParseAddin (progressStatus, currentDomain, file, outFile, false);
}
catch {
File.Delete (outFile);
throw;
}
try {
AddinDescription desc = AddinDescription.Read (outFile);
if (desc != null) {
desc.AddinFile = file;
desc.OwnerDatabase = database;
}
return desc;
}
catch {
// Errors are already reported using the progress status object
return null;
}
finally {
File.Delete (outFile);
}
}