如何用C#代碼管理SharePoint解決方案

來源:互聯網
上載者:User

標籤:sharepoint   解決方案   代碼   

如何用C#代碼管理SharePoint解決方案        本文我們將瞭解如何用代碼管理SharePoint解決方案。我們使用伺服器端物件模型抽取解決方案。        SharePoint中解決方案有兩類:沙箱化解決方案和場解決方案。 沙箱化解決方案和場解決方案使用不同方式部署,並且通過不同物件模型抽取。        注意:這裡用SPUserSolution代表沙箱化解決方案;SPFarmSolution代表場解決方案。如何獲得沙箱化解決方案        沙箱化解決方案在網站集合層次部署。下面是在網站集合中抽取所有使用者解決方案:
using (SPSite site = new SPSite("http://localhost")){    foreach (SPUserSolution solution in site.Solutions)    {        Console.WriteLine(solution.Name);        Console.WriteLine(solution.Status);    }}
如何獲得場解決方案        抽取所有場解決方案的代碼如下:
foreach (SPSolution solution in SPFarm.Local.Solutions){    Console.WriteLine(solution.Name);    Console.WriteLine(solution.SolutionId);    Console.WriteLine(solution.Status);}
        接下來看看如何通過伺服器端物件模型安裝解決方案吧。安裝沙箱化解決方案        安裝解決方案有兩步:添加到庫;啟用。        下面是添加解決方案到庫的代碼:
using (SPSite site = new SPSite("http://localhost")){    SPDocumentLibrary gallery              =(SPDocumentLibrary)site.GetCatalog(SPListTemplateType.SolutionCatalog);    SPFile file = gallery.RootFolder.Files.Add("SandboxedSolution.wsp",       File.ReadAllBytes("SandboxedSolution.wsp"));     SPUserSolution solution = site.Solutions.Add(file.Item.ID);}
移除沙箱化解決方案        移除解決方案並禁用功能使用以下代碼:
using (SPSite site = new SPSite("http://localhost")){    SPUserSolution solution = site.Solutions.Cast<SPUserSolution>().                                             Where(s => s.Name == "Your Solution").First();    site.Solutions.Remove(solution);}
安裝場解決方案         安裝場解決方案使用以下代碼:
private static void InstallFarmSolution(){    SPSolution solution = SPFarm.Local.Solutions.Add("File Path here");    solution.Deploy(DateTime.Now, true, GetAllWebApplications(), true);}
        我們需要指定解決方案路徑。上面的代碼讓解決方案安裝到所有Web應用程式中。GetAllWebApplication()方法主體如下:
public static Collection<SPWebApplication> GetAllWebApplications(){    Collection<SPWebApplication> result = new Collection<SPWebApplication>();    SPServiceCollection services = SPFarm.Local.Services;    foreach (SPService s in services)    {        if (s is SPWebService)        {            SPWebService webService = (SPWebService)s;            foreach (SPWebApplication webApp in webService.WebApplications)            {                result.Add(webApp);            }        }    }    return result;}
移除場解決方案        移除場解決方案成為收回解決方案。這是合適的方法:
private void RetractFarmSolution(SPSolution solution){    solution.Retract(DateTime.Now);}
        建立Timer job收回解決方案。你可以指定開始收回的時間。        只從指定Web應用程式移除解決方案,參照這個方法:
private void RetractFarmSolution(SPSolution solution, Collection<SPWebApplication> webApplications){    solution.Retract(DateTime.Now, webApplications);}
總結        本文中,我們學習了如何使用伺服器端物件模型抽取沙箱化解決方案和場解決方案。
參考:關於沙箱化解決方案與場解決方案區別,參照http://msdn.microsoft.com/en-us/library/ee361616.aspx使用代碼啟用SharePoint 2010 沙箱化解決方案,參照http://msdn.microsoft.com/en-us/library/hh528516(v=office.14).aspx
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.