使用功能部署網站元素 (SharePoint Foundation 2010)
適用版本: SharePoint Foundation 2010
上次修改主題的時間: 2016-11-30
本文說明如何使用「功能」來部署已開發的網站元素自訂。透過使用「功能」,您可以控制啟動和停用網站自訂的範圍,並且輕鬆地在多個伺服器陣列間部署自訂。
本節內容:
何謂功能?
何時使用功能
建立功能
使用 Windows PowerShell 安裝並啟動功能
何謂功能?
「功能」是個容器,涵括各種為 SharePoint Foundation 2010 定義的擴充功能,是由一組部署在前端網頁伺服器和應用程式伺服器的 XML 檔案所組成。您可以將「功能」部署成方案套件的一部分,且可以在 SharePoint Foundation 網站中個別啟動「功能」。
「功能」可減少進行簡單網站自訂時所涉及的複雜性。使用「功能」更能在進行簡單功能變更時免除複製大量程式碼的麻煩,因此減少了前端網頁伺服器之間產生版本設定與不一致的問題。
「功能」讓部署過程的啟動或停用功能變得更加容易,管理員只要在使用者介面中開啟或關閉某特定的功能,便可以輕易地轉換網站的範本或定義。
元素是「功能」內的最小單位。Feature 元素位於 Feature.xml 檔案中,用以定義「功能」,及指定支援「功能」之組件、檔案、相依性或屬性的位置。「功能」包含一個 Feature.xml 檔案和數個描述個別元素的檔案。另一個來自不同結構描述的「功能」元素位於 Onet.xml 檔案,它是用來指定透過網站定義建立網站時要啟動的「功能」。
Feature.xml 檔案通常指向一或多個以上的 XML 檔案,這些檔案頂層的 <Elements> 標記包含了支援該「功能」的元素定義。SharePoint Foundation 2010 中的元素多半對應到 Microsoft Office SharePoint Portal Server 2003 Onet.xml 或 Schema.xml 檔案中的離散節點。元素有數種類型,例如,自訂功能表項目或事件處理常式。
如需「功能」之各項功能的詳細資訊,請參閱使用功能(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=183450&clcid=0x404)(可能為英文網頁)。
如需 Feature.xml 檔案中所用檔案格式和 XML 元素的特定資訊,請參閱 Feature.xml 檔案(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=183451&clcid=0x404)(可能為英文網頁)。
如需功能如何影響網站定義中之 Onet.xml 檔案格式的相關資訊,請參閱網站定義 (Onet.xml) 檔案(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=183454&clcid=0x404)(可能為英文網頁)。
如需「功能」元素類型的詳細資訊,請參閱元素類型(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=183455&clcid=0x404)(可能為英文網頁)。
何時使用功能
若要將功能、自訂或設定變更部署至前端網頁伺服器,建議的方法是使用「功能」。「功能」可讓您透過其生命週期,從啟動、升級到最終的停用,靈活地管理功能。
在下列一或多個案例中,您可以使用「功能」來部署已開發網站元素:
需要啟動和停用 當您在「功能」中部署網站元素自訂時,可以使用 Windows PowerShell 或物件模型來安裝、啟動和停用「功能」。此外,您也可以透過使用管理中心網站,啟動和停用「功能」。
範圍彈性 您可以為單一範圍啟動「功能」,包括伺服器陣列、Web 應用程式、網站集合或網站。
容易進行分散式部署 可輕易將「功能」部署到多個伺服器陣列,做為方案的一部分。
透過「功能」物件模型進行控制 「功能」物件模型可讓您指定特定的範圍內已安裝功能的清單,並控制是否要在伺服器陣列和網站層級啟用功能。
請使用方案套件來封裝「功能」,以便部署到不同環境。例如,使用方案套件可以在開發人員工作站和整合伺服器陣列之間部署自訂,也可以部署在整合伺服器陣列或製作用戶端工作站與試驗或實際執行伺服器陣列之間。
建立功能
當您使用瀏覽器或 SharePoint Designer 在 SharePoint Foundation 2010 中建立自訂網頁時,ASPX 頁面只能屬於執行 SharePoint Foundation 2010 之伺服器的根網站集合。若要在網站集合下建立整個伺服器陣列及所有網站集合都可以使用的頁面,請使用方案,將該頁面部署在 \14\Template\Layouts 資料夾中 (在方案資訊清單檔案中使用 TemplateFiles)。
若要在伺服器陣列上部署「功能」,最佳作法是使用方案套件。如果伺服器必須重新建置,或者伺服器陣列新增了其他伺服器,就不必將「功能」手動新增到每部前端網頁伺服器。只要使用方案套件,就可將新的和升級的「功能」部署到整個伺服器陣列上,並與前端網頁伺服器同步處理,這樣前端網頁伺服器的狀態便能與伺服器陣列中其他伺服器的狀態一致。
若要控制網站集合或網站中的自訂頁面可用性,請將自訂網頁部署為 SharePoint 功能,成為方案的一部分。使用 Feature.xml 檔案中的模組元素,可在運用某一範圍的網站集合和網站之下進行網頁部署。模組通常是用來實作網站中的網頁組件頁面。
部署為方案一部分的「功能」會自動安裝。如果您手動部署「功能」,則必須安裝並啟動它。請參閱本文後述的<使用 Windows PowerShell 安裝並啟動功能>。
建立並部署自訂功能
建立 Feature.xml 檔案。以下是 Feature.xml 檔案的範例,必須利用此檔案提供功能唯一識別碼,並指向 Module.xml 檔案。
<?xml version="1.0"?> <Feature Id="8C4DD0CB-5A94-44da-9B7F-E9ED49C2B2DC" Title= "Custom Web page" Description="This simple example feature adds an ASPX page with a hosted XmlFormView control" Version="1.0.0.0" Scope="Web" xmlns="https://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="Module.xml"/> </ElementManifests> </Feature>
建立 Module.xml 檔案。以下是 Module.xml 檔案的範例,此檔案包含屬於解決方案一部分之頁面的相關資訊。
<?xml version="1.0"?> <Elements xmlns="https://schemas.microsoft.com/sharepoint/"> <module name="file" url="" path=""> <file url="XmlFormViewPage.aspx" type="ghostable"> </file> </module> </Elements>
將檔案的 url 值變更為您 ASPX 頁面的名稱。
在伺服器電腦的「功能」安裝目錄中,為「功能」定義新增一個子資料夾,一般是位於 %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\14\TEMPLATE\FEATURES。
重要
最佳作法是,針對您為「功能」定義所建立的子資料夾使用仔細、完整的名稱。這個作法會降低新增多個同名「功能」而覆寫其他「功能」Feature.xml 檔案的可能性。例如,請使用 HR_Contract 和 Finance_Contract,而不要使用 Contract。
將您的自訂 .aspx 頁面新增到「功能」定義的這個子資料夾。
將 Feature.xml 和 Module.xml 檔案新增到相同位置。
將「功能」新增到方案套件中。
您可以使用 Visual Studio 2010 將「功能」新增到方案中,或是手動將 FeatureManifests 元素新增到方案 Manifest.xml 檔案中。
建立方案套件。
您可以使用 Visual Studio 2010 來建置方案套件,也可以使用 Makecab.exe 工具來建立方案套件。
匯入並部署方案套件。
使用 Windows PowerShellAdd-SPSolution Cmdlet 將方案新增到方案存放區,然後使用管理中心網站或 Windows PowerShell 從方案存放區部署方案。
如需使用 Visual Studio 2010 將「功能」新增到方案套件的詳細資訊,請參閱建立 SharePoint 方案套件(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=187035&clcid=0x404)(可能為英文網頁)。如需手動建立方案套件或使用 Makecab.exe 工具製作套件的詳細資訊,請參閱建立方案(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=187036&clcid=0x404)(可能為英文網頁)。如需部署方案的詳細資訊,請參閱<部署方案套件 (SharePoint Foundation 2010)>。
使用 Windows PowerShell 安裝並啟動功能
您可以使用 Windows PowerShell 或物件模型安裝和啟動「功能」,也可以在要啟動「功能」的網站集合或網站上,使用 [管理 Web 應用程式的功能] 頁面或 [功能] 頁面上啟動「功能」。安裝「功能」可使整個伺服器陣列得知「功能」的定義和元素,而啟動「功能」則可讓特定範圍使用「功能」。
注意
部署為方案套件一部分的「功能」是透過部署而安裝,不需手動安裝。
您需將「功能」安裝在 14\Template\Features 資料夾中,且每項「功能」都有自己的子資料夾。在此資料夾的根目錄中,Feature.xml 檔案會定義「功能」的內容。您必須先安裝個別「功能」才能使用,而且除非「功能」的使用範圍設為伺服器陣列,否則,您必須在安裝後再啟動「功能」。如果「功能」的使用範圍設為伺服器陣列或 Web 應用程式,則會自動啟動。
若要解除安裝「功能」,使它的定義不再於伺服器陣列中提供使用,首先必須使用 Windows PowerShellDisable-SPFeature Cmdlet 停用功能,若「功能」的使用範圍為 Web 應用程式或伺服器陣列,則不需如此。停用「功能」之後,您就可以使用 Uninstall-SPFeature Cmdlet 將它解除安裝。如需詳細資訊,請參閱<Uninstall-SPFeature>。解除安裝「功能」之後,請重設 Internet Information Services (IIS),使變更生效。
若要停用「功能」,使其在原始指派的範圍中變成非使用中而不解除安裝,則可以使用 Disable-SPFeature Cmdlet。如需詳細資訊,請參閱<Disable-SPFeature>。
請使用下列程序安裝並啟動「功能」。
使用 Windows PowerShell 安裝功能
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
在 Windows PowerShell 命令提示字元處,輸入下列命令:
Install-SPFeature -path <Path> [-force]
其中:
- <Path> 是有效的檔案路徑,例如,MyFeature。功能的路徑必須是 14\Template\Features 資料夾名稱的常值路徑。Feature.xml 檔案名稱已隱含在其中,不需要再提供。
如需詳細資訊,請參閱<Install-SPFeature>。
注意
建議您在執行命令列管理工作時使用 Windows PowerShell。Stsadm 命令列工具已過時,但為與舊版產品相容,仍會隨附提供。
使用 Windows PowerShell 啟動功能
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
在 Windows PowerShell 命令提示字元處,輸入下列命令:
Enable-SPFeature -Identity <FeatureID> [-url] <URLname> [-force]
其中:
<FeatureID> 是位於 14\Template\Features 資料夾的「功能」資料夾名稱,必須是有效的檔案路徑,例如 MyCustom。
<URLname> 是要啟動「功能」之 Web 應用程式、網站集合或網站的「功能」上層 URL,例如 http://somesite。
如需詳細資訊,請參閱<Enable-SPFeature>。
注意
建議您在執行命令列管理工作時使用 Windows PowerShell。Stsadm 命令列工具已過時,但為與舊版產品相容,仍會隨附提供。