Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In continuance of my last post, I noticed that when I added the SPWeb WSPs (SPWeb.SaveAsTemplate) to the User Solutions Gallery (Top Level Site Settings –> Solutions), they were not activated. Which I later found was because I was using one of the pre-RTM builds. In RTM, Save Site as template will not only add the solution , but activate them as well, so that the site template is available for creation at sub-site create page.
Now in my custom application page, I needed to present a list of such User Solutions(templates, sandbox solutions etc) and be able to activate , deactivate, remove them from this page.
The fact that it’s a Catalog , or in simpler terms a Library, the items need to be treated as SPListItem and WSPs as SPListItem.File
I am sharing the code snippets which I tested successfully in a console application below:
using (SPSite oSite = new SPSite("https://mss2010")) { using (SPWeb web = oSite.OpenWeb()) { SPWeb rootweb = web.Site.RootWeb; // Code to ACtivate solution SPList solGallery = rootweb.Site.GetCatalog(SPListTemplateType.SolutionCatalog); foreach (SPListItem item in solGallery.Items) { if (item.File.Name.Equals("site1.wsp")) { rootweb.Site.Solutions.Add(item.ID); break; } } // Code to DeACtivate solution foreach (SPUserSolution solution in rootweb.Site.Solutions) { if (solution.Name.Equals("site1.wsp")) { rootweb.Site.Solutions.Remove(solution); } } // Code to Delete solution SPList solGallery1 = rootweb.Site.GetCatalog(SPListTemplateType.SolutionCatalog); foreach (SPListItem item in solGallery1.Items) { if (item.File.Name.Equals("site1.wsp")) { solGallery1.Items.DeleteItemById(item.ID); break; } } } }
Comments
- Anonymous
June 15, 2010
The code to activate solution doesn't activate Features as I found on further testing. Please check my post blogs.msdn.com/.../activating-sharepoint-2010-user-solutions-programmatically.aspx for further details