部署方案套件 (SharePoint Server 2010)

 

適用版本: SharePoint Server 2010

上次修改主題的時間: 2016-11-30

本文說明方案套件以及它們在 Microsoft SharePoint Server 2010 環境中,在部署已製作及已開發自訂時所扮演的角色。其中包括匯入及部署方案套件的程序,以及使用 Microsoft Visual Studio 2010 建立及部署方案套件的範例。

本文內容:

  • 何謂方案套件?

  • 使用方案套件部署網站元素

  • 使用 Visual Studio 2010 建立及部署自訂網頁組件方案套件

何謂方案套件?

「方案套件」是一種散佈套件,可將您的自訂 SharePoint Server 2010 開發工作傳送到伺服器陣列的網頁伺服器或應用程式伺服器。您可以使用方案來封裝及部署自訂「功能」、網站定義、範本、版面配置、網頁組件、階層式樣式表及組件。

本文不討論沙箱化解決方案的部署。您可以將 Microsoft SharePoint Server 2010 方案直接部署在 SharePoint Server 伺服器陣列,或將方案部署在「沙箱」中。「沙箱」是受限制的執行環境,它讓程式只能存取特定的資源,使得發生在沙箱中的程式不會影響其餘的伺服器環境。如需詳細資訊,請參閱<沙箱化解決方案概觀 (SharePoint Server 2010)>。

方案套件是副檔名為 .wsp 的 CAB 檔案,內含資訊清單檔案。建議您使用 Visual Studio 2010 Tools for SharePoint 2010 來開發及封裝 SharePoint 方案。您也可以使用如 Makecab.exe 及 SharePoint Packman 工具來手動建立方案套件。

方案中可封裝的元件包括:

  • .NET Framework 組件,通常是網頁組件及事件接收器組件。

  • 部署檔案 (如資源檔案、頁面或其他協助程式檔案)。

  • 「功能」可讓您啟用或停用網站中的程式碼,以及提供包含元素的功能,這些元素如自訂清單、元件庫、欄位及內容類型。

  • 新範本及網站定義。

  • 必須在網頁伺服器層級執行的設定;例如,部署自訂到 Web.config 檔案以註冊網頁組件。您也可以利用「功能」所散佈的「功能」修改這些設定。

  • 網頁所呼叫的網頁內容,如網頁及圖像。如果您必須在中斷連線的環境中部署網頁內容,您應該使用內容部署套件。

使用方案套件部署網站元素

本節內容:

  • 方案套件的使用時機

  • 部署伺服器陣列方案

  • 匯入方案套件

  • 部署方案套件

  • 關於建立方案套件

方案套件的使用時機

部署自訂的最佳作法,就是利用方案套件來做為直接、安全及一致的應用程式週期管理程序。方案套件讓您在網站建立後,容易變更「功能」及網站的功能性。

您可以使用方案套件在整個伺服器陣列中部署新的方案及升級現有的方案。您可以將所有的 SharePoint Server 實體封裝為一個檔案、將檔案新增到方案存放區,以及將它部署到伺服器陣列的前端網頁伺服器。使用方案套件同步前端網頁伺服器,讓它的狀態與其他伺服器陣列的網頁伺服器狀態一致。

您可以使用方案套件,將整合伺服器陣列的已製作網站元素自訂部署到製作、試驗或實際執行伺服器陣列。在 SharePoint Server 中使用者可以儲存自訂網站為範本。這會建立具有 .wsp 副檔名的方案套件,可以用來部署到其他伺服器陣列。

您可以使用方案套件在這些環境之間部署自訂:

  • 從開發然元工作站到整合伺服器陣列或是軟體設定管理系統

  • 從整合伺服器陣列及製作用戶端工作站到試驗或實際執行伺服器陣列

部署伺服器陣列方案

伺服器陣列方案可以在本機部署或是使用計時器服務進行部署。這兩種部署都可以使用命令列指令或是使用物件模型以程式設計的方式啟動部署。

本機部署

在本機部署中,方案檔案只會部署到初始化部署作業所在的電腦中。直到方案檔案部署到伺服器陣列中所有適用的伺服器之後,設定資料庫才會將方案標示為「已部署」。然後會安裝方案功能,而且設定檔會認可結構描述及定義檔案。

計時器服務部署

在使用計時器服務的部署中,部署會建立計時器工作。伺服器陣列每個網頁伺服器中的計時器服務會擷取這個計時器工作。首先會先剖析清單及功能資訊清單以尋找組件及 _layouts 檔案,這些檔案將會複製到適當的位置。功能目錄中包含的所有其他檔案,會複製到該功能目錄。方案檔案複製到目標電腦後,所有前端網頁伺服器都將排定重設設定;然後重設會部署檔案並重新啟動 Microsoft Internet Information Services (IIS)。接著會註冊方案功能,然後設定檔會認可結構描述及定義檔。

如需方案存放區、部署及同步的相關資訊,請參閱在 Microsoft SharePoint 2010 開發軟體套件 (SDK) 中的部署方案(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=186995&clcid=0x404)(可能為英文網頁)。

新增方案套件

您必須先將方案套件新增到 SharePoint Server 伺服器陣列,才能部署該方案套件。

重要

您必須是執行 Windows PowerShell 所在電腦中管理員群組的成員。

使用 Windows PowerShell 匯入方案套件

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。。

  2. 在 [開始] 功能表上,按一下 [所有程式]。

  3. 按一下 [Microsoft SharePoint 2010 產品]。

  4. 按一下 [SharePoint 2010 管理命令介面]。

  5. 在 Windows PowerShell 命令提示字元處,輸入下列命令:

    Add-SPSolution -LiteralPath <SolutionPath>
    

方案會新增至伺服器陣列的方案存放區。若要使用方案,請遵循本文下一節的程序。如需詳細資訊,請參閱<Add-SPSolution>。

部署方案套件

您可以使用管理中心網站或使用 Windows PowerShell 部署匯入的方案。利用 Windows PowerShellAdd-SPSolution Cmdlet 將方案新增到方案存放區之後,必須先部署到網站才能存取。

注意

您無法使用管理中心的 [方案管理] 頁面,將方案新增到方案存放區。

以下程序說明如何利用管理中心網站或是 Windows PowerShell,將匯入的方案部署到伺服器陣列中的網站。

使用管理中心部署解決方案

  1. 在管理中心首頁上,按一下 [系統設定]。

  2. 在 [伺服器陣列管理] 區段中,按一下 [管理伺服器陣列方案]。

  3. 在 [方案管理] 頁面上,按一下要部署的方案。

  4. 在 [方案內容] 頁面上,按一下 [部署方案]。

  5. 在 [部署方案] 頁面的 [部署時間] 區段中,選取下列其中一項:

    • [現在]

    • [在指定的時間]。如果選取此選項,請使用日期和時間方塊指定時間。建議您選取目的地伺服器上低負載的時間。

  6. 在 [部署位置?] 區段的 [特定 Web 應用程式] 清單內,按一下 [所有 Web 應用程式] 或選取特定 Web 應用程式。

  7. 按一下 [確定]。

使用 Windows PowerShell 將方案套件部署到單一 Web 應用程式

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 在 [開始] 功能表上,按一下 [所有程式]。

  3. 按一下 [Microsoft SharePoint 2010 產品]。

  4. 按一下 [SharePoint 2010 管理命令介面]。

  5. 在 Windows PowerShell 命令提示字元處,輸入下列命令:

    Install-SPSolution -Identity <SolutionName> -WebApplication <URLname>
    

    其中:

    • <SolutionName> 是方案的名稱。

    • <URLname> 是您想要部署匯入的方案所在的 Web 應用程式 URL。

    根據預設,會立即部署方案。您也可以使用 time 參數來排定部署。如需詳細資訊,請參閱<Install-SPSolution>。

使用 Windows PowerShell 將方案套件部署到所有 Web 應用程式

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 在 [開始] 功能表上,按一下 [所有程式]。

  3. 按一下 [Microsoft SharePoint 2010 產品]。

  4. 按一下 [SharePoint 2010 管理命令介面]。

  5. 在 Windows PowerShell 命令提示字元處,輸入下列命令:

    Install-SPSolution -Identity <SolutionName> -AllWebApplications -time <TimeToDeploy> -GACDeployment -CASPolicies
    

    其中:

    • GACDeployment 參數讓 SharePoint Server 2010 能在全域組件快取中部署組件。

    • CASPolicies 可以建立自訂程式碼存取安全性 (CAS) 原則檔,以及在目標網站集合的 Web.config 檔中啟動它。

    根據預設,會立即部署方案。您也可以使用 time 參數來排定部署。

關於建立方案套件

SharePoint Server 2010 不提供用於建立方案套件的工具。本節說明建立內含已開發網站元素與成品之方案套件的方式。

Visual Studio 2010

您可以使用 Visual Studio 2010 將相關的 SharePoint 元素群組為一項「功能」,然後將多項「功能」、網站定義、組件及其他檔案結合成單一套件 (.wsp 檔案),以部署到執行 SharePoint Server 2010 的伺服器。您可以使用 Visual Studio 2010 在執行 SharePoint Server 2010 的伺服器上偵錯及測試 .wsp。也可以在開發的電腦中自訂部署的步驟。

開發人員可以使用自動建立程序,在 Visual Studio 2010 中建立其 SharePoint 方案並產生 .wsp 檔案。用於產生 .wsp 檔案的 Visual Studio SharePoint 專案原始碼,也可以利用 Visual Studio 2010 的整合新增到原始程式碼控制系統。Visual Studio 2010 可匯入 .wsp 檔案,然後建立專案以進一步擴充並建立新的 .wsp 檔案。匯入到 Visual Studio 2010 的 .wsp 檔案其主要來源,是利用 SharePoint Server 2010 網站上的 [另存範本] 命令所儲存的範本。這些範本可以用來儲存所有 SharePoint 方案的網站自訂。

如需詳細資訊,請參閱 Visual Studio 中的 SharePoint 開發(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=187000&clcid=0x404)(可能為英文網頁)。

Makecab

您可以使用 Makecab.exe 等工具手動建立方案套件。Makecab.exe 工具會採用指向 .ddf 檔案的指標,該指標描述 CAB 檔案的結構。.ddf 檔案格式與 .inf 檔案類似。也就是說,您需宣告標準標頭,然後依檔案組在磁碟機上的位置及其在 CAB 檔案中的所在位置,列舉檔案組 (每行一個檔案)。

您可以在 Microsoft Cabinet Software Development Kit (https://go.microsoft.com/fwlink/?linkid=107292&clcid=0x404) (機器翻譯) 中下載 Makecab.exe 工具。

SharePoint PackMan

SharePoint PackMan 工具可以簡化封裝及管理 SharePoint 方案的流程。拖曳您的檔案到此工具中,即會建立 .ddf 檔案、manifest.xml 檔案,並從命令提示字元中執行 Makecab.exe。SharePoint PackMan 也可以簡化在伺服器陣列、Web 應用程式或網站集合中,新增、部署、撤銷及刪除方案的動作。

可由 CodeBox 下載 SharePoint PackMan 工具:https://codebox/sppackman (https://go.microsoft.com/fwlink/?linkid=107292&clcid=0x404)。

關於自訂方案套件

如果您必須在 SharePoint Server 2010 方案中進行以下任何一項自訂,建議您使用 Visual Studio 2010 來自訂方案套件。您也可以手動建立 SharePoint 方案套件來進行這些自訂。

  • 在私人應用程式資料夾中部署 .NET Framework 組件,而非全域組件快取。

  • 將程式碼存取安全性權限新增到方案,而這些權限必須在部署期間套用。

  • 使用預設以外的「功能」資料夾名稱。

  • 將方案當地語系化。

  • 將「功能」事件處理常式與特定類型的 SharePoint Foundation 2010 方案相關聯,例如網頁組件方案。

  • 新增資源 (XML 檔案、圖片, .dll 檔案和組件) 到方案套件。

手動建立方案檔案

在大多數 SharePoint Server 2010 開發案例中,我們建議您使用 Visual Studio 2010 Tools for SharePoint 2010 來開發及封裝 SharePoint 方案。在 Visual Studio 2010 中,開發程序會將 .wsp 檔案複製到執行 SharePoint Server 2010 的伺服器、安裝方案,然後啟用「功能」。

您可以手動建立方案檔。以下是建立方案檔的基本步驟:

  1. 將所有個別的方案檔收集到資料夾中。此動作沒有具體的作法準則,但最佳作法是將不同類型的方案檔分別放入自己的子資料夾。

  2. 建立列出方案元件的 manifest.xml 檔案。

  3. 建立定義方案檔結構的 .ddf 檔。這個檔案包含決定 output.wsp 檔之個別方案檔的清單。

  4. 執行 Makecab.exe,使用 .ddf 檔做為輸入,.wsp 檔做為輸出。

關於方案資訊清單檔案

方案資訊清單 (一律命名為 manifest.xml) 儲存於方案檔的根目錄。這個檔案會定義「功能」、網站定義、資源檔、網頁組件檔及程序組件等的清單。它不會定義檔案結構;如果檔案包含在方案中,但未列於 manifest.xml 檔,則不會進行任何處理。

以下 manifest.xml 檔結構的範例是以 XML 顯示。

<?xml version="1.0" encoding="utf-8" ?>

<Solution xmlns="https://schemas.microsoft.com/sharepoint/"

SolutionId="{79d1a62e-3627-11db-963e-00e08161165f}"

ResetWebServer="TRUE">

    <Assemblies>

        <Assembly DeploymentTarget="GlobalAssemblyCache"

Location="Example.Sharepoint.Webparts\

Example.SharePoint.WebParts.dll">

            <SafeControls>

                <SafeControl Assembly="Example.Sharepoint.Webparts,

Version=1.0.0.0, Culture=Neutral, PublicKeyToken=63cce650e8605f5d"

Namespace="Example.Sharepoint.Webparts" TypeName="*"/>

            </SafeControls>

        </Assembly>

        <Assembly DeploymentTarget="GlobalAssemblyCache"

Location="Example.Sharepoint.Timer/Example.Sharepoint.Timer.dll"/>

    </Assemblies>

    <FeatureManifests>

        <FeatureManifest Location="Example.Sharepoint.Timer\Feature.xml"/>

        <FeatureManifest Location="Example.CustomType\Feature.xml"/>

        <FeatureManifest Location="Example.ExampleLibrary\Feature.xml"/>

        <FeatureManifest Location="Example.Columns\Feature.xml"/>

        <FeatureManifest Location="Example.Workflow.ProcessExample\Feature.xml"/>

        <FeatureManifest Location="Example.Workflow.ProvisionExample\Feature.xml"/>

    </FeatureManifests>

    <SiteDefinitionManifests>

        <SiteDefinitionManifest Location="EXAMPLE">

            <WebTempFile Location="1033\XML\WEBTEMPExample.XML"/>

        </SiteDefinitionManifest>

    </SiteDefinitionManifests>

</Solution>

此外,可以新增 DwpFiles 元素來指定 .webpart 或 .dwp 檔,或是新增 ResourceFiles 元素來指定資源檔、網站定義、應用程式資源和程式碼存取安全性原則。

您也可以使用 <ElementFile> 標籤 (選用) 來註解您的 Feature.xml 檔案。

若方案包含「功能」,請在 Feature.xml 檔案的 <ElementManifests> 標籤中,為功能中所有額外的檔案 (如 ASP.NET 網頁 (例如 allitems.aspx) 或主版頁面等) 新增 <ElementFile Location="..."/>

如需定義方案構成組件之方案資訊清單檔案的詳細資訊,請參閱方案結構描述 (可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=183466&clcid=0x404)(可能為英文網頁) (可能為英文網頁)。

使用 Visual Studio 2010 建立及部署自訂網頁組件方案套件

如需如何使用 Visual Studio 2010 建立、自訂、偵測及部署 SharePoint 清單定義,以便追蹤專案工作的逐步解說範例,請參閱 MSDN Library 的逐步解說:部署專案工作清單定義 (可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=183466&clcid=0x404)(可能為英文網頁) (可能為英文網頁)。

這個逐步解說說明以下工作:

  • 建立包含工作的 SharePoint 清單定義專案。

  • 將清單定義新增到 SharePoint 功能。

  • 將事件接收器新增到清單。

  • 建立及自訂 SharePoint 套件以部署「功能」。

  • 建立及部署 SharePoint 方案。

建立此逐步解說中的範例專案之後,Visual Studio 2010 即會自動將解決方案部署至在開發電腦上執行 SharePoint Server 2010 的伺服器,以進行測試與偵錯。您也可以建立方案套件檔案,以新增及部署到其他電腦。如需詳細資訊,請參閱 HOW TO:部署 SharePoint 方案(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=187004&clcid=0x404)(可能為英文網頁)。您可以使用 Add-SPSolutionWindows PowerShell Cmdlet 將方案匯入其他電腦。

您可以使用管理中心的 [方案管理] 頁面部署方案套件。您也可以使用 Install-SPSolutionWindows PowerShell Cmdlet 來部署方案套件。

在逐步解說中,專案清單功能的範圍為 Web。若要啟動「功能」,請在網站上,展開 [網站動作] 功能表,然後按一下 [網站設定]。按一下 [網站動作] 下的 [管理網站功能]。在「功能」頁面上,按一下 [功能] 名稱旁邊的 [啟動]。