SharePoint發行版本有SharePoint2003、SharePoint2007、Sharepoint 2010、SharePoint2013和SharePoint2016。SharePoint提供了功能強大的團隊協作環境,使得組織能夠在整個組織內部實現整合、組織、查找和提供 SharePoint站點。 眾所周知,SharePoint App是2013版本的一大特色,那么,關于App的分發有幾種方式呢?SharePoint給我們提供了兩種方式,一種是上載到SharePoint應用商店,另一種是在本地SharePoint環境中創建應用程序目錄,為本地用戶提供App的分發。 SharePoint服務器場中可以有多個應用程序目錄,每個目錄針對服務器場中的一個Web 應用程序。若要為Web應用程序配置應用程序目錄,只需提供要用于應用程序目錄網站的網站集管理員的名稱。創建應用程序目錄后,網站集管理員可將 SharePoint相關應用程序上載到該目錄。 (SharePoint應用程序商店和應用程序目錄對比圖) 從上圖中,我們可以看到SharePoint商店和應用程序目錄對于本地IT的關系,SharePoint商店不是本文要介紹的,我們進入正題,介紹應用程序目錄。SharePoint的應用程序目錄,是部署在每個應用程序下的一個SPCatelog類型的站點,我們可以在管理中心的UI中根據向導創建,也可以使用代碼創建一個SPCatelog類型的站點,用PowerShell關聯應用程序,這是我們要介紹的內容。 一開始,我們簡單介紹了應用程序目錄,以及和SharePoint商店的關系和對比,下面我們介紹如何創建應用程序目錄。兩種方式:管理中心UI和代碼創建,前者就是一系列截圖演示,后者才是重點。 一、管理中心通過界面創建1、打開管理中心,在左側導航選擇應用程序,然后點擊管理應用程序目錄; 2、可以選擇現有的應用程序目錄網站,或者創建新的應用程序目錄網站; 3、如果已存在SPAppCateLog類型的站點,輸入URL地址點擊確定即可完成關聯;如果不是SPAppCateLog類型的站點,是不能設置為應用程序目錄的,如下圖報錯; 4、走向導創建應用程序目錄,其實就是創建一個SPAppCateLog類型的站點(SPSite),和創建網站集的過程很相似; 5、創建完畢,如下圖,我們就可以通過創建的應用程序目錄,上載、分發App了: 6、查看應用程序目錄的網站內容,如下圖: 7、若要規劃應用程序目錄設置,請確定以下幾點: ?哪些 Web 應用程序將需要應用程序目錄。 此決定與有關在 SharePoint 環境中支持 SharePoint 相關應用程序的決定是一起做出的。如果您的服務器場中對于不同的 Web 應用程序有不同類型的網站(Intranet、Extranet 和 Internet),則可以確定是否需要為這些 Web 應用程序各配置一個應用程序目錄。 ?作為應用程序目錄網站集管理員添加的人員。 應用程序目錄是 Web 應用程序中的一個網站,只能通過管理中心中的鏈接或使用 URL 直接訪問該網站。 二、代碼創建AppCatelog,PowerShell關聯1、其實沒什么太多可說的,AppCatelog就是一個SPAppCateLog類型的站點,上面也已經介紹過了,如下代碼,創建SPAppCateLog類型的SPSite; ![]() SPWebApplicationBuilder webappbuilder = new SPWebApplicationBuilder(SPFarm.Local);SPWebService webs = new SPWebService("webs", SPFarm.Local);SPWebApplicationCollection webappcoll = new SPWebApplicationCollection(webs);Guid gu = new Guid("693d5e1b-91c0-4829-888e-f67c43afbc50");SPWebApplication webapp = webappcoll[gu];SPSite site = webapp.Sites.Add("/sites/spappcatelog", "title", "description", 2052, SPWebTemplate.WebTemplate.AppCatalog.ToString(), "domain\\user", "測試用戶", [email protected]);webapp.Update(); ![]() Guid是我要使用的應用程序的ID,當然可以使用應用程序的名稱;2052是中文的意思,如果英文應該是1033;模板類型雖然我是讀取的,但是輸出看了一眼,就是SPCatelog,然后就是網站的管理員,基本就這么幾個參數。 2、創建應用程序目錄,PowerShell命令: Update-SPAppCatalogConfiguration -Site http://url -Force:$true -SkipWebTemplateChecking:$true PowerShell命令作用是,把改站點設置為所在應用程序的應用程序目錄,所以不需要指定應用程序,即可。在SharePoint PowerShell中執行,即可。 3、PowerShell封裝的C#方法,如下: ![]() public bool UpdateSPAppCatalog(string siteurl){bool myvalue = true; try { PowerShell ps = PowerShell.Create(); ps.AddScript("Add-PsSnapin \"Microsoft.SharePoint.PowerShell\""); ps.AddScript("Set-ExecutionPolicy -ExecutionPolicy \"Unrestricted\" -Force"); ps.AddScript("Update-SPAppCatalogConfiguration -Site " + siteurl + " -Force:$true -SkipWebTemplateChecking:$true"); ps.Invoke ![]() 因為PowerShell默認執行的是Windows的PowerShell,所以需要Add-PsSnapin一下SharePoint的引用(Microsoft.SharePoint.PowerShell)才能執行SharePoint的PowerShell。 到此為止,應用程序目錄C#代碼創建已經結束了! 三、弦外之音畫外音 我用代碼創建AppCatelog的初衷,是想封裝成WebService,然后給程序調用,然后發現封裝完畢WebService了,但是調用的時候沒有操作PowerShell的權限,后來查了下資料,發現有人可以封裝為COM+組件,但是和我的應用場景不太適合,也就沒再弄下去,所以介紹到這里,希望能給需要的人,一點點幫助。 Sharepoint 可以幫助企業用戶輕松完成日常工作。 |
溫馨提示:喜歡本站的話,請收藏一下本站!