Share via


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

適用于:yes-img-132013 no-img-16 2016no-img-192019 no-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

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

您必須了解的資訊

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

需要閱讀本文和原因的對象

本文適用于必須與開發人員合作,在 SharePoint Server 2013 伺服器陣列上的多個網站集合上部署和維護完全信任程式碼型自訂功能的 IT 專業人員。 若要瞭解如何在升級至 SharePoint 2013 時使用舊版自訂功能,以及如何協助確保使用者在網站集合從相容性模式升級時順暢地運作,請參閱這篇文章。 它會連結到提供開發人員更多詳細資料的其他文章。

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

您需要熟悉的 Microsoft PowerShell Cmdlet

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

名稱 作用 範例
Add-SPSolution
將解決方案新增至伺服器陣列的方案庫。
Add-SPSolution -LiteralPath c:\contoso_solution.wsp
Install-SPSolution
部署已新增至伺服器陣列之方案庫的解決方案。
Install-SPSolution -Identity contoso_solution.wsp -GACDeployment -CompatibilityLevel 15
Install-SPSolution
撤銷已部署的解決方案。
Uninstall-SPSolution -Identity contoso_solution.wsp
Remove-SPSolution
移除已部署的解決方案。
Remove-SPSolution -Identity contoso_solution.wsp

注意事項

如需如何使用 PowerShell 以及執行 PowerShell for SharePoint Cmdlet 所需最低許可權的詳細資訊,請參閱使用 Windows PowerShell 來管理 SharePoint 2013

部署解決方案套件概觀

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

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

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

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

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

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

  1. 將方案套件新增至伺服器陣列。 使用 Add-SPSolution PowerShell Cmdlet 將 SharePoint 解決方案套件上傳至伺服器陣列。 這會將解決方案新增至伺服器陣列的解決方案存放區,位於伺服器陣列的組態資料庫中。

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

注意事項

如需如何將解決方案套件部署至 SharePoint2013 伺服器陣列的詳細資訊,請參閱安裝及管理 SharePoint Server 的解決方案

Install-SPSolution PowerShell Cmdlet 也包含相容性層級參數,可將解決方案套件部署至為 SharePoint 2010 模式或 SharePoint 2013 模式網站集合指定之根資料夾中的位置。 這些是 「14」 和 「15」 根資料夾, (hives) ,而當您部署解決方案時,功能、配置檔案、映射和控制項範本等檔案會在此新增。

圖:SharePoint 2010 和 2013 根資料夾

SharePoint 2010 和 2013 根資料夾

您也應該注意,當您將解決方案套件部署至 SharePoint 2013 伺服器陣列時,不論相容性層級為何,某些檔案都會複製到特定位置。 如需檔案複製到何處的詳細資訊,請參閱 Planning Deployment of Farm Solutions for 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 2013 伺服器陣列中使用舊版自訂功能時,於下列三種情況的其中一種情況,您可能要自行尋找:

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

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

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

支援的案例

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

   
案例 1
SharePoint 2010 相容性模式的舊版解決方案,而且預期功能會在升級至 SharePoint 2013 模式時保持相同。
案例 2
SharePoint 2010 相容性模式的舊版解決方案,但重建解決方案會逐漸新增 SharePoint 2013 模式的功能。
案例 3
SharePoint 2010 相容性模式的舊版解決方案,並建置新解決方案以實作 SharePoint 2013 的新功能。

注意事項

如需根據相容性層級在伺服器陣列中安裝解決方案套件檔案之位置的詳細資料,請參閱 TechNet 部落格文章:規劃 SharePoint 2013 的伺服器陣列解決方案部署

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

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

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

此案例的步驟如下:

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

  2. 將方案套件新增至伺服器陣列。 您可以透過 Add-SPSolution PowerShell Cmdlet 來執行此動作。 例如:

    Add-SPSolution -LiteralPath c:\Solution.wsp

  3. 部署解決方案套件。

  4. 部署 SharePoint 2010 相容性的方案套件。 您可以使用 Install-SPSolution PowerShell Cmdlet 來執行此動作。 請務必將 -CompatibilityLevel 參數設定為 14。 例如:

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

  5. 部署適用于 SharePoint 2013 相容性的解決方案套件。 您可以使用 Install-SPSolution 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 模式時,請使用相同的解決方案名稱和識別碼。

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

在此案例中,自訂功能可在 SharePoint Server 2010 中正確運作。 您想要藉由將此功能新增至 SharePoint 2013 伺服器陣列來建置方案套件,但您也想要確定您可以在使用此解決方案套件的 SharePoint 2013 模式中,以累加方式新增網站集合的功能。 例如,針對 SharePoint 2010 建立自訂網頁組件。 它經過測試,可在 SharePoint 2013 中運作,而不會變更程式碼。 不過,您知道您可能想要為 SharePoint 2013 使用者新增其他功能,但您仍然想要使用相同的功能元件來允許回溯相容性。

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

例如,假設您在專為 SharePoint 2010 設計的自訂功能中實作名為 Sample () 的方法。 如果您想要在 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 目錄。 For more information, see the "Planning Considerations" section of the TechNet blog post, Planning Deployment of Farm Solutions for SharePoint 2013.

此案例的步驟如下:

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

  2. 將方案套件新增至伺服器陣列。 您可以使用 Add-SPSolution PowerShell Cmdlet 來執行此動作。 例如:

    Add-SPSolution -LiteralPath c:\Solution.wsp

  3. 部署解決方案套件。

  4. 部署 SharePoint 2010 相容性的方案套件。 您可以使用 Install-SPSolution PowerShell Cmdlet 來執行此動作。 請務必將 -CompatibilityLevel 參數設定為 14。 例如:

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

  5. 安裝適用于 SharePoint 2013 相容性的解決方案套件。 您可以使用 Install-SPSolution PowerShell Cmdlet 來執行此動作。 請務必將 -CompatibilityLevel 參數設定為 15。 例如:

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

注意事項

Install-SPSolution Microsoft PowerShell Cmdlet 中的CompatibilityLevel參數也可讓您選擇同時將解決方案套件安裝到 14 和 15 根目錄。 您可以使用 「14,15」 或 「All」 的值來執行此動作。 例如: >Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 14, 15 -GAC ...> 如需Install-SPSolution Microsoft PowerShell Cmdlet 中-CompatibilityLevel參數的詳細資訊,請參閱Install-SPSolution

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

注意事項

使用 Install-SPSolution 命令安裝兩種 SharePoint 模式時,請使用相同的解決方案名稱和識別碼。

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

在此案例中,自訂功能已知可在 SharePoint Server 2010 中正確運作,但已知無法在 SharePoint 2013 中運作。 您必須建立新的和個別的解決方案套件,其中已修正自訂功能的功能,才能在 SharePoint 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-SPSolution PowerShell Cmdlet 來執行此動作。 例如:

    Add-SPSolution -LiteralPath c:\POC14.wsp

  3. 將 SharePoint 2013 相容性的解決方案套件新增至伺服器陣列。 您也可以透過 Add-SPSolution PowerShell Cmdlet 來執行此動作。 例如:

    Add-SPSolution -LiteralPath c:\POC15.wsp

  4. 部署 SharePoint 2010 相容性的方案套件。 您可以透過 Install-SPSolution PowerShell Cmdlet 來執行此動作。 請務必將 -CompatibilityLevel 參數設定為 14。 例如:

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

  5. 安裝適用于 SharePoint 2013 相容性的解決方案套件。 您也可以透過 Install-SPSolution PowerShell Cmdlet 來執行此動作。 請務必將 -CompatibilityLevel 參數設定為 15。 例如:

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

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

解除安裝方案套件

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

重要事項

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

撤銷和移除解決方案套件:

  1. 從伺服器陣列中撤銷 SharePoint 2010 模式解決方案套件:您可以透過Uninstall-SPSolution Windows PowerShell Cmdlet 來執行此動作。 例如:

    Uninstall-SPSolution -Identity POC14.wsp -CompatibilityLevel 14

    重要事項

    請務必使用 CompatibilityLevel 參數來 「 14 」 只撤銷 2010 相容性模式的解決方案套件。 例如:Uninstall-SPSolution POC14.wsp -CompatibilityLevel 14

  2. 從伺服器陣列的解決方案存放區移除解決方案套件:您可以透過 Remove-SPSolution PowerShell Cmdlet 來執行此動作。 例如:

    Remove-SPSolution -Identity POC14.wsp

撤銷和移除解決方案套件

其他考量

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

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

  • 主版頁面考量

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

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

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

主版頁面考量

關於商標自訂,在 SharePoint 2013 中的網站集合升級之後,預設會將自訂主版頁面重設為 seattle.master。 如果您使用功能遮罩案例,則必須重設您為 SharePoint 2013 網站集合建立的任何自訂主版頁面。 如需如何執行這項操作的詳細資訊,請參閱 MSDN 文章從 SharePoint 2010 升級時,使用功能更新套用新的 SharePoint Server 2013 主版頁面

注意事項

如需在 SharePoint 2013 中升級網站集合時必須進行的品牌考量詳細資訊,請參閱升級至 SharePoint 2013 時可能發生的品牌問題

另請參閱

其他資源

建立升級到 SharePoint 2013 期間的現有自訂計劃

適用于商標和網站布建的 SharePoint 2013 和 Microsoft 365 中的 SharePoint 解決方案套件

升級至 SharePoint 2013 時可能發生的品牌問題