internal static AddinDescription Merge(AddinDescription desc1, AddinDescription desc2)
{
if (!desc2.IsExtensionModel) {
AddinDescription tmp = desc1;
desc1 = desc2; desc2 = tmp;
}
((AddinPropertyCollectionImpl)desc1.Properties).AddRange (desc2.Properties);
desc1.ExtensionPoints.AddRange (desc2.ExtensionPoints);
desc1.ExtensionNodeSets.AddRange (desc2.ExtensionNodeSets);
desc1.ConditionTypes.AddRange (desc2.ConditionTypes);
desc1.OptionalModules.AddRange (desc2.OptionalModules);
foreach (string s in desc2.MainModule.Assemblies)
desc1.MainModule.Assemblies.Add (s);
foreach (string s in desc2.MainModule.DataFiles)
desc1.MainModule.DataFiles.Add (s);
desc1.MainModule.MergeWith (desc2.MainModule);
return desc1;
}