本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

在 SharePoint Server 2013 中將自訂功能部署至已升級網站集合

SharePoint 2013
 

適用版本:SharePoint Server 2013

上次修改主題的時間:2016-12-16

摘要:了解支援的案例,以在從 SharePoint Server 2010 升級的 SharePoint Server 2013 伺服器陣列中,將自訂功能部署至已升級網站集合。

本文說明如何將自訂功能透過方案套件部署到已從 SharePoint Server 2010 升級的 SharePoint Server 2013 伺服器陣列。它包括所支援案例的資訊和程序。它也介紹「功能遮罩」。

本文內容:

本節說明您在開始之前必須了解的資訊。其中包括下列項目:

本文適用於 IT 專業人員,其必須與開發人員合作,以部署和維護 SharePoint Server 2013 伺服器陣列之多個網站集合中的完全信任程式碼型自訂功能。您應該閱讀本文,了解如何在升級至 SharePoint Server 2013 時使用舊版自訂功能,以及如何協助確保從相容性模式升級網站集合時,它們可以針對使用者緊密合作。它會連結到提供開發人員更多詳細資料的其他文章。

將 SharePoint Server 2010 伺服器陣列升級至 SharePoint Server 2013 之後,所有網站集合都是以 SharePoint 2010 相容性模式執行。除非每個網站集合都升級至 SharePoint 2013 模式,否則它們會保留此模式。因此,除非您升級個別網站集合,否則您的使用者可以使用他們熟悉的 SharePoint Server 2010 使用者介面和功能。您也可以使用可能已在 SharePoint Server 2010 中使用的舊版自訂功能。您最後會想要將網站集合升級至 SharePoint 2013 模式,以利用它所提供的新功能。進行此升級時,在 SharePoint 2010 相容性模式中運作的自訂功能可能無法再運作。您需要確定 SharePoint 模式會持續具有所使用的相同功能。本文說明如何進行這項作業。

基於本文的目的,您應該熟悉下列 Windows PowerShell Cmdlet:

 

名稱 作用 範例

新增 SPSolution

將方案新增至伺服器陣列的方案庫。

Add-SPSolution -LiteralPath c:\contoso_solution.wsp

Install-spsolution

部署已新增至伺服器陣列之方案庫的方案。

Install-SPSolution -Identity contoso_solution.wsp -GACDeployment -CompatibilityLevel 15

解除安裝 SPSolution

撤銷已部署的方案。

Uninstall-SPSolution -Identity contoso_solution.wsp

移除 SPSolution

移除已部署的方案。

Remove-SPSolution -Identity contoso_solution.wsp

注意事項 附註:
如需如何使用 Windows PowerShell 以及執行 Windows PowerShell for SharePoint Cmdlet 所需最低權限的詳細資訊,請參閱使用 Windows Powershell 管理 SharePoint 2013

若要了解下列各節,您應該了解如何將自訂功能部署至 SharePoint Server 2013 伺服器陣列。

從 SharePoint Server 2010 升級至 SharePoint Server 2013 伺服器陣列時,新增自訂功能是重要步驟。

圖:在升級程序中新增自訂功能

在升級階段中新增自訂功能

您可以使用方案套件,將自訂新增至新的伺服器陣列。方案套件是一個配送套件,以將自訂 SharePoint Server 2013 開發工作傳遞至伺服器伺服器陣列中的網頁伺服器或應用程式伺服器。您可以使用方案來封裝和部署自訂功能、網站範本、Web 範本、版面配置頁面、網頁組件、階層式樣式表和計時器工作。

若要將方案套件部署至 SharePoint Server 2013 伺服器陣列,您需要:

  1. 將方案套件新增至伺服器陣列。使用 Add-SPSolutionWindows PowerShell Cmdlet,將 SharePoint 方案套件上傳至伺服器陣列。這會將方案新增至伺服器陣列的方案庫 (位於伺服器陣列的設定資料庫中)。

  2. 將方案套件部署至伺服器陣列。使用 Install-SPSolutionWindows PowerShell Cmdlet,將 SharePoint 方案套件部署至伺服器陣列。這會取消封裝方案套件,並將自訂功能所含的所有檔案複製至 "Feature" 目錄 (位於伺服器陣列的前端 Web 伺服器上)。每個自訂功能的子資料夾都會予以建立,並包括 Feature.xml 檔案。此檔案定義功能的基礎屬性和其繫結的元素,以及一或多個元素清單資訊檔案 (elements.xml),而元素清單資訊檔案定義可構成功能的元素。

注意事項 附註:
如需如何將方案套件部署至 SharePoint Server 2013 伺服器陣列的詳細資訊,請參閱安裝及管理 SharePoint 2013 的解決方案

Install-SPSolution Windows PowerShell Cmdlet 也包括相容性層級參數,以將方案套件部署至根資料夾中針對 SharePoint 2010 模式或 SharePoint 2013 模式網站集合指定的位置。這些是 "14" 和 "15" 根資料夾 (Hive),而且在部署方案時,會在這裡新增功能、版面配置檔案、影像和控制範本這類檔案。

圖:SharePoint 2010 和 2013 根資料夾

SharePoint 2010 和 2013 根資料夾

您也應該注意當將方案套件部署至SharePoint Server 2013伺服器陣列,有些檔案都會複製到特定位置無論相容性層級。如需檔案複製到其中的詳細資訊,請參閱規劃的伺服器陣列方案部署 SharePoint 2013 的

伺服器陣列中任一模式的網站集合指向其對應 Hive,以使用方案套件所提供的自訂功能。

圖:升級至 SharePoint Server 2013 之後部署舊版自訂功能

在升級之後部署舊版自訂功能

自訂功能可能已經過測試,證實可在 SharePoint 2010 和 SharePoint 2013 模式中正確運作。若是如此,功能組件檔案可以是完全相同的。例如,如果已知自訂功能 (Feature1) 是以 SharePoint 2013 和 SharePoint 2010 模式運作,則可以使用相同的方案套件,將相同的自訂功能 (Feature1) 部署至 "14" 和 "15" 資料夾。

不過,如果測試顯示舊版自訂功能可能無法以 SharePoint 2013 模式作用於網站集合,則您可能需要進行下列變更:

  • 更新方案套件,以包括條件式邏輯,來啟用根據 SharePoint 網站集合模式的功能。

  • 當特性的更新功能由升級的網站集合使用時,則可使用更新功能來建立全新和獨立的方案套件。

「功能遮罩」包含針對已升級網站和網站集合的相同功能使用全新和獨立的方案套件 (將功能範圍設為網站或網站集合時)。功能遮罩允許已升級網站集合自動尋找以及使用正確的自訂功能組件。因此,您的使用者可以順暢地使用相同的自訂功能。

在 SharePoint Server 2013 伺服器陣列中使用舊版自訂功能時,於下列三種情況的其中一種情況,您可能要自行尋找:

 

方案套件所提供的自訂功能目前適用於 SharePoint 2010 模式的網站集合。它也適用於 SharePoint 2013 模式的網站集合。

方案套件所提供的自訂功能目前適用於 SharePoint 2010 模式的網站集合。它也適用於 SharePoint 2013 模式的網站集合。您也應該考量未來可能想要針對 SharePoint 2013 模式之網站集合會逐漸新增的其他自訂功能。

方案套件所提供的自訂功能目前適用於 SharePoint 2010 模式的網站集合。但是不適用於 SharePoint 2013 模式的網站集合。

將自訂功能部署至已從 SharePoint Server 2010 升級的 SharePoint Server 2013 伺服器陣列時,支援三個不同的部署案例:

 

案例 1

SharePoint 2010 相容性模式的舊版方案,而且預期功能會在升級至 SharePoint 2013 模式時保持相同。

案例 2

SharePoint 2010 相容性模式的舊版方案,但重建方案會逐漸新增 SharePoint 2013 模式的功能。

案例 3

SharePoint 2010 相容性模式的舊版方案,並建置新方案以實作 SharePoint Server 2013 的新功能。

注意事項 附註:
如需根據相容性層級在伺服器陣列中安裝方案套件檔案的詳細資訊,請參閱 TechNet 部落格文章規劃的伺服器陣列方案部署 SharePoint 2013 的

在此案例中,透過方案套件提供的自訂功能目前正確地適用於 SharePoint 2010 相容性模式的網站集合。此外,預期它也適用於將網站集合升級至 SharePoint 2013 模式時。例如,針對 SharePoint 2010 建立自訂網頁組件。它已經過測試,適用於 SharePoint 2013,而不需要變更程式碼。您知道可以將它新增至 SharePoint Server 2013 伺服器陣列,而且它適用於 SharePoint 2010 相容性模式之網站集合中的使用者,以及將網站升級至 SharePoint 2013 時。

因為預期自訂功能適用於兩種 SharePoint 模式,所以您可以使用相同的自訂功能組件。不過,一定要針對兩種 SharePoint 模式部署方案套件,以在使用 Install-SPSolution Cmdlet 時處理參數。此案例中未使用功能遮罩,因為兩種模式中的網站集合使用相同的程式碼 (位於對應 2010 和 2013 模式資料夾的重複功能組件中)。

此案例的步驟如下:

  1. 建立含有自訂功能的方案套件。

  2. 將方案套件新增至伺服器陣列。作法是透過 Add-SPSolutionWindows PowerShell Cmdlet。例如:

    Add-SPSolution -LiteralPath c:\Solution.wsp

  3. 部署方案套件。

    1. 部署 SharePoint 2010 相容性的方案套件。作法是使用 Install-SPSolutionWindows PowerShell Cmdlet。請務必將 –CompatibilityLevel 參數設定為 14。例如:

      Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 14 -GAC ...

    2. 部署 SharePoint 2013 相容性的方案套件。作法是使用 Install-SPSolutionWindows PowerShell Cmdlet。請務必將 –CompatibilityLevel 參數設定為 15。例如:

      Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 15 -GAC ... 

注意事項 附註:
Install-SPSolution Windows PowerShell Cmdlet 中的 –CompatibilityLevel 參數也會顯示同時將方案套件安裝至 14 和 15 根目錄的選項。使用值 "14,15" 或 "All" 可執行此作業。例如:
Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 14, 15 -GAC ... 
如需Install-spsolution Windows PowerShell cmdlet 中– CompatibilityLevel參數的詳細資訊,請參閱 < Install-spsolution

舊版自訂功能在兩種模式中皆可運作

注意事項 附註:
使用 Install-SPSolution 命令安裝兩種 SharePoint 模式時,請使用相同的方案名稱和識別碼。

在此案例中,自訂功能正確地適用於 SharePoint Server 2010。您透過將此功能新增至 SharePoint Server 2013 伺服器陣列來建置方案套件,但是您也想要確定可以遞增地新增 SharePoint 2013 模式中使用此方案套件之網站集合的功能。例如,針對 SharePoint 2010 建立自訂網頁組件。它已經過測試,適用於 SharePoint 2013,而不需要變更程式碼。不過,您知道可能會想要為 SharePoint 2013 使用者新增其他功能,但還是想要使用相同的功能組件,以允許回溯相容性。

因為預期自訂功能適用於兩種 SharePoint 模式,所以您可以使用相同的自訂功能組件。您必須安裝兩種 SharePoint 模式的方案套件,就像前一個案例一樣。此案例中的重要差異是方案套件必須包括邏輯,以啟用根據網站集合相容性設定條件的功能。

例如,假設您有名為 Sample() 旨在進行 SharePoint 2010 自訂功能中實作的方法。 如果您想要變更其實作SharePoint 2013模式中的,您的程式碼應該包括條件式邏輯使用SPSite.CompatibilityLevel 屬性

void Sample()
{
if (site.CompatibilityLevel == 14) { /*Existing O14 implementation*/}
else {/*New O15 implementation*/}}
}

依照此相同的功能組件會提供功能之 SharePoint 2010 及SharePoint 2013版本。功能遮罩不使用在此案例中可能是因為您不只使用相同的功能組件,也能使用相同的方案套件。自訂的功能相同的檔案複製到"14"和"15"\Template\Features 目錄。如需詳細資訊,請參閱 TechNet 部落格文章:規劃的伺服器陣列方案部署 SharePoint 2013 的」 規劃考量"區段。

此案例的步驟如下:

  1. 建立含有自訂功能的方案套件。包括啟用根據網站集合相容性之功能的條件式邏輯。

  2. 將方案套件新增至伺服器陣列。作法是使用 Add-SPSolutionWindows PowerShell Cmdlet。例如:

    Add-SPSolution -LiteralPath c:\Solution.wsp

  3. 部署方案套件。

    1. 部署 SharePoint 2010 相容性的方案套件。作法是使用 Install-SPSolutionWindows PowerShell Cmdlet。請一定要將 –CompatibilityLevel 參數設定為 14。例如:

      Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 14 -GAC ...

    2. 安裝 SharePoint 2013 相容性的方案套件。作法是使用 Install-SPSolutionWindows PowerShell Cmdlet。請務必將 –CompatibilityLevel 參數設定為 15。例如:

      Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 15 -GAC ... 

注意事項 附註:
Install-SPSolution Windows PowerShell Cmdlet 中的 –CompatibilityLevel 參數也會顯示同時將方案套件安裝至 14 和 15 根目錄的選項。使用值 "14,15" 或 "All" 可執行此作業。例如:
Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 14, 15 -GAC ... 
如需Install-spsolution Windows PowerShell cmdlet 中– CompatibilityLevel參數的詳細資訊,請參閱 < Install-spsolution

舊版自訂功能需要條件式邏輯

注意事項 附註:
使用 Install-SPSolution 命令安裝兩種 SharePoint 模式時,請使用相同的方案名稱和識別碼。

在此案例中,已知自訂功能正確地運作於 SharePoint Server 2010,但已知它不適用於 SharePoint Server 2013。您需要建立新的和不同的方案套件,其中已修正自訂功能的功能正確地運作於 SharePoint Server 2013。在此案例中,您有兩個具有不同功能組件的不同方案套件。此案例使用功能遮罩。因為使用者是從相容性模式移至 SharePoint 2013,所以會對它們進行「遮罩處理」,原因是它們使用的自訂功能已從某個不同的程式碼庫移至程式碼庫。

在此案例中,您需要新增和部署兩個不同方案套件,內含兩個不同的功能組件。即使功能組件和資源不同,所以此功能的這兩個版本還是必須具有相同的名稱、功能識別碼和功能清單資訊位置。

功能遮罩需求

需求 相同或不同 方案套件 - 2010 模式範例 方案套件 - 2013 模式範例

方案套件名稱

不同

POC14

POC15

方案套件識別碼

不同

000000-0000-0000-0000-000000000000

11111111-1111-1111-1111-111111111111

功能名稱

相同

Feature1

Feature1

功能識別碼

相同

12345

12345

功能 XML 資料夾名稱

相同

POC15\Features\Feature1.feature\

POC15\Features\Feature1.feature\

功能資訊清單位置

相同

POC15_Feature1\Feature1.Template.xml

POC15_Feature1\Feature1.Template.xml

圖:功能遮罩的方案套件

使用解決方案套件進行功能遮罩

此案例的步驟如下:

  1. 使用不同的名稱建立兩個不同的方案套件。所部署功能的版本必須具有相同的功能名稱和識別碼。

  2. 將 SharePoint 2010 相容性的方案套件新增至伺服器陣列。作法是透過 Add-SPSolutionWindows PowerShell Cmdlet。例如:

    Add-SPSolution -LiteralPath c:\POC14.wsp

  3. 將 SharePoint 2013 相容性的方案套件新增至伺服器陣列。作法也可以透過 Add-SPSolutionWindows PowerShell Cmdlet。例如:

    Add-SPSolution -LiteralPath c:\POC15.wsp

  4. 部署 SharePoint 2010 相容性的方案套件。作法是透過 Install-SPSolutionWindows PowerShell Cmdlet。請一定要將 –CompatibilityLevel 參數設定為 14。例如:

    Install-SPSolution -Identity POC14.wsp -CompatibilityLevel 14 -GAC ...

  5. 安裝 SharePoint 2013 相容性的方案套件。作法也可以透過 Install-SPSolutionWindows PowerShell Cmdlet。請務必將 –CompatibilityLevel 參數設定為 15。例如:

    Install-SPSolution -Identity POC15.wsp -CompatibilityLevel 15 -GAC ... 

進行功能遮罩以部署自訂功能

所有網站集合都已升級至 SharePoint 2013 模式之後,就不再需要針對 SharePoint 2010 相容性模式網站集合部署的舊版方案套件。發生此情況時,可以撤銷舊版方案套件,並將它從 SharePoint Server 2013 伺服器陣列中移除。可以透過 Uninstall-SPSolutionRemove-SPSolution Windows PowerShell Cmdlet 完成。

重要事項 重要事項:
從 SharePoint Server 2013 伺服器陣列撤銷方案時,建議使用 Uninstall-SPSolution Windows PowerShell Cmdlet。透過管理中心撤銷方案時,預設會從 SharePoint 2010 和 SharePoint 2013 根資料夾撤銷方案。特別需要注意的是使用功能遮罩來部署自訂功能時。

撤銷和移除方案套件:

  1. 撤銷伺服器陣列中的 SharePoint 2010 模式方案套件:可以透過 Uninstall-SPSolution Windows PowerShell Cmdlet 完成。例如:

    Uninstall-SPSolution -Identity POC14.wsp -CompatibilityLevel 14

    重要事項 重要事項:
    請務必使用設為 "14" 的 –CompatibilityLevel 參數,僅撤銷 2010 相容性模式的方案套件。例如:Uninstall-SPSolution POC14.wsp -CompatibilityLevel 14
  2. 移除伺服器陣列方案庫中的方案套件:可以透過 Remove-SPSolution Windows PowerShell Cmdlet 完成。例如:

    Remove-SPSolution -Identity POC14.wsp

撤銷和移除解決方案套件

本節包括其他考量的資訊,如下所示:

  • 使用混合模式在網站集合中部署功能

  • 主版頁面考量

如果您的自訂功能是伺服器陣列或 Web 應用程式範圍,則可以部署它,即使並未將伺服器陣列或 Web 應用程式內的所有網站集合都已升級至 SharePoint 2013 相容性模式也是一樣。

針對 Web 應用程式範圍功能,如果尚未升級根網站集合,則無法使用 Install-SPSolution PowerShell Cmdlet 來啟動功能。您必須改為使用 SharePoint 管理中心 網站來啟動功能。

有關的自訂品牌、 自訂主版頁面會重設預設為 seattle.master 之後SharePoint Server 2013升級網站集合。如果您使用功能遮罩案例,您需要重設已建立SharePoint 2013網站集合的任何自訂主版頁面。如需如何執行此作業的詳細資訊,請參閱使用功能升級要套用新 SharePoint 伺服器 2013年主版頁面從 SharePoint 2010 升級時MSDN 文章。

注意事項 附註:
如需詳細資訊之商標考量您需要進行升級SharePoint Server 2013中的網站集合時,請參閱 <的商標的問題,可能會發生升級至 SharePoint 2013 時

https://technet.microsoft.com/zh-tw/library/cc263205.aspx
顯示: