部署 Visual Studio 中 SharePoint 工具的擴充功能
若要部署 SharePoint 工具擴充功能,請建立 Visual Studio 擴充功能 (VSIX) 套件,其中包含擴充功能組件和要與擴充功能一起散發的任何其他檔案。VSIX 套件為符合「開放式封裝慣例」(OPC) 標準的壓縮檔。VSIX 套件有 .vsix 副檔名。
建立 VSIX 套件之後,其他使用者就可以執行 .vsix 檔案來安裝您的擴充功能。當使用者安裝您的擴充功能時,所有檔案都會安裝到 %UserProfile%\AppData\Local\Microsoft\VisualStudio\11.0\Extensions 資料夾。若要部署擴充功能,您可以將 VSIX 套件上載至 Visual Studio Gallery 網站,或使用其他方式將套件散發至客戶,例如在網路共用或其他網站上裝載套件。
如需建立 VSIX 套件並將其部署到 Visual Studio 組件庫 (英文) 的詳細資訊,請參閱VSIX 部署。
您可以使用 Visual Studio 中的 [VSIX 專案] 範本,建立 VSIX 套件,或可以手動建立 VSIX 套件。
使用 VSIX 專案建立 VSIX 套件
您可以使用 Visual Studio SDK 提供的 [VSIX 專案] 範本建立 SharePoint 工具擴充功能的 VSIX 套件。使用 VSIX 專案與手動建立 VSIX 套件相比,可提供數個優點:
當您建立專案時,Visual Studio 會自動產生 VSIX 套件。系統會為您執行將部署檔案加入至套件和建立套件之 [Content_Types].xml 檔案等這一類工作。
您可以將 VSIX 專案設定為包含擴充功能專案的組建輸出和 VSIX 套件中的其他檔案,例如專案範本和項目範本。
如需使用 VSIX 專案的詳細資訊,請參閱VSIX 專案範本。
組織專案
根據預設,VSIX 專案只會產生 VSIX 套件,而不是組件。因此,通常不需要在 VSIX 專案中實作 SharePoint 工具擴充功能。一般至少會用到兩個專案:
VSIX 專案。
實作擴充功能的類別庫專案。
也可能會用到某些擴充功能類型的其他專案:
實作任何由擴充功能所用之 SharePoint 命令的類別庫專案。如需示範此案例的逐步解說,請參閱逐步解說:擴充伺服器總管以顯示 Web 組件。
建立項目範本或專案範本的項目範本或專案範本專案 (如果擴充功能定義新的 SharePoint 專案項目類型)。如需示範此案例的逐步解說,請參閱逐步解說:使用項目範本建立自訂動作專案項目 (第 1 部分)。
為項目範本或專案範本實作自訂精靈的類別庫專案 (如果擴充功能包含範本)。如需示範此案例的逐步解說,請參閱逐步解說:使用項目範本建立自訂動作專案項目 (第 2 部分)。
如果在相同的 Visual Studio 方案中包含所有專案,則您可以修改 VSIX 專案中的 source.extension.vsixmanifest 檔案,以包含類別庫專案的組建輸出。
編輯 VSIX 資訊清單
您必須編輯 VSIX 專案中的 source.extension.vsixmanifest 檔案,以便包含所有要包含在擴充功能中之項目 (Item) 的項目 (Entry)。當您從開啟其捷徑功能表中的 source.extension.vsixmanifest 檔案,檔案會出現在為編輯檔案中的 XML 提供 UI 的設計工具。如需詳細資訊,請參閱VSIX 資訊清單的設計工具。
您必須在 source.extension.vsixmanifest 檔案加入下列項目 (Item) 的項目 (Entry):
擴充功能組件。
實作任何由擴充功能所用之 SharePoint 命令的組件。
任何與擴充功能關聯的專案範本或項目範本。
與擴充功能關聯之範本的自訂精靈。
下列程序說明如何在 .vsixmanifest 檔案加入每個這些項目 (Item) 的項目 (Entry):
若要包含擴充功能組件
在 VSIX 專案中,開啟 source.extension.vsixmanifest 檔案的捷徑功能表,然後選取 [開啟]。
檔案隨即在設計工具中開啟。
在編輯器中 [資產] 索引標籤上,選取 [新增] 按鈕。
[將新的屬性] 對話方塊隨即開啟。
在 [型別] 清單中,選取 [Microsoft.VisualStudio.MefComponent]。
在 [Source] 清單中,執行下列其中一個步驟:
如果擴充功能組件是從與方案相同的 VSIX 專案,選取 [在目前方案中的專案] 的專案建置。在 [Project] 清單中,選取專案名稱。
如果擴充功能組件,包含在您專案中的檔案,選取 [檔案在檔案系統]。在 [路徑] 清單,請輸入完整路徑的擴充功能組件檔或使用 [瀏覽] 按鈕尋找和選取組件檔。
選擇 [確定] 按鈕。
若要包含 SharePoint 命令組件
在 VSIX 專案中,開啟 source.extension.vsixmanifest 檔案的捷徑功能表,然後選取 [開啟] 按鈕。
檔案隨即在設計工具中開啟。
在編輯器中 [資產] 區段中,選取 [新增] 按鈕。
[將新的屬性] 對話方塊隨即開啟。
在 [型別]方塊中,輸入 [SharePoint.Commands.v4]。
在 [Source] 清單中,執行下列其中一個步驟:
如果命令組件是從與方案相同的 VSIX 專案,選取 [在目前方案中的專案] 的專案建置。在 [Project] 清單中,選取專案名稱。
如果命令組件中,在您專案中的檔案,選取 [在檔案系統中的檔案]。在 [路徑] 清單,請輸入完整路徑的擴充功能組件檔或使用 [瀏覽] 按鈕尋找和選取組件檔。
選擇 [確定] 按鈕。
包括您剛才建立的範本
在 VSIX 專案中,開啟 source.extension.vsixmanifest 檔案的捷徑功能表,然後選取 [開啟] 按鈕。
檔案隨即在設計工具中開啟。
在編輯器中 [資產] 區段中,選取 [新增] 按鈕。
[將新的屬性] 對話方塊隨即開啟。
在 [型別] 清單中,選取 [Microsoft.VisualStudio.ProjectTemplate]或 [Microsoft.VisualStudio.ItemTemplate]。
在 [Source] 清單中,選取 [在目前方案中的專案]。
在 [Project] 清單中,選取專案名稱,然後選取 [確定] 按鈕。
在 [方案總管],開啟您的專案範本或項目範本專案的捷徑功能表,然後選取 [卸載專案]。
重新開啟專案節點的捷徑功能表,然後選取 [編輯]YourTemplateProjectName[.csproj] 或 [編輯]YourTemplateProjectName[.vbproj]。
在專案檔中尋找下列 VSTemplate 項目。
<VSTemplate Include="YourTemplateName.vstemplate">
以下列 XML 取代項目。
<VSTemplate Include="YourTemplateName.vstemplate"> <OutputSubPath>SharePoint\SharePoint14</OutputSubPath> </VSTemplate>
OutputSubPath 項目會在您建置專案時用以建立專案範本的路徑中,指定其他資料夾。這裡指定的資料夾可確保項目範本可供使用,只有在用戶 [新增專案] 開啟對話方塊時, [SharePoint] 展開節點,然後選取 [2010] 節點。
儲存並關閉檔案。
在 [方案總管],請開啟專案範本或項目範本專案的捷徑功能表,然後選取 [重新載入專案]。
若要包含手動建立的範本
在 VSIX 專案中,將新資料夾加入至專案中以包含範本。
在這個新資料夾下,建立下列子資料夾,然後將範本 (.zip) 檔案加入至 Locale ID 資料夾。
YourTemplateFolder
SharePoint
SharePoint14
Locale ID
YourTemplateName.zip
例如,如果具有名為 ContosoCustomAction.zip 且支援英文 (美國) 地區設定的項目範本,則完整路徑可能為 ItemTemplates\SharePoint\SharePoint14\1033\ContosoCustomAction.zip。
在 [方案總管],選取範本檔 (.zip)YourTemplateName。
在 [屬性] 視窗中,將 [建置動作] 屬性設定為 [內容]。
開啟 source.extension.vsixmanifest 檔案的捷徑功能表,然後選取 [開啟]。
檔案隨即在設計工具中開啟。
在編輯器中 [資產] 區段中,選取 [新增] 按鈕。
[將新的屬性] 對話方塊隨即開啟。
在 [型別] 清單中,選取 [Microsoft.VisualStudio.ItemTemplate]或 [Microsoft.VisualStudio.ProjectTemplate]。
在 [Source] 清單中,選取 [在檔案系統中的檔案]。
在 [路徑] 欄位中,輸入完整路徑的組件 (例如, [ItemTemplates\SharePoint\SharePoint14\1033\ContosoCustomAction.zip] 或使用 [瀏覽] 按鈕尋找和選取組件,然後選取 [確定] 按鈕。
若要包含專案範本或項目範本的精靈
在 VSIX 專案中,開啟 source.extension.vsixmanifest 檔案的捷徑功能表,然後選取 [開啟]。
檔案隨即在設計工具中開啟。
在編輯器中 [資產] 區段中,選取 [新增] 按鈕。
[將新的屬性] 對話方塊隨即開啟。
在 [型別] 清單中,選取 [Microsoft.VisualStudio.Assembly]。
在 [Source] 清單中,執行下列其中一個步驟:
如果精靈組件是從與方案相同的 VSIX 專案,選取 [在目前方案中的專案] 的專案建置。在 [Project] 清單中,選取專案名稱。
如果精靈組件中,在您專案中的檔案,選取 [在檔案系統中的檔案]。在 [路徑] 欄位中,輸入完整路徑的組件檔或使用 [瀏覽] 按鈕尋找和選取組件。
選擇 [確定] 按鈕。
相關的逐步解說
下表所列的逐步解說將說明如何使用 VSIX 專案部署不同類型的 SharePoint 工具擴充功能。
擴充功能類型 |
相關的逐步解說 |
---|---|
只包含擴充功能組件的擴充功能 |
|
任何包含 SharePoint 命令的擴充功能 |
|
任何包含 Visual Studio 範本的擴充功能 |
|
任何包含範本精靈的擴充功能 |
手動建立 VSIX 套件
如果您想要手動建立用於 SharePoint 工具擴充功能的 VSIX 套件,請執行下列步驟:
建立 extension.vsixmanifest 檔案、[Content_Types].xml 和 VSIX 套件檔 (.vsix file)。如需詳細資訊,請參閱VSIX 套件的結構與How to: 以手動方式封裝的副檔名 (VSIX 部署)。
將擴充功能組件加入至 VSIX 套件。如果擴充功能包含 SharePoint 命令,另請加入會對 VSIX 套件實作 SharePoint 命令的組件。
修改 extension.vsixmanifest 檔案:
將 Microsoft.VisualStudio.MefComponentAssets 項目在項目之下,然後將新項目的值到實作自己的 VSIX 套件中擴充組件的相對路徑。如需詳細資訊,請參閱MefComponent Element。
如果擴充功能包含會呼叫 SharePoint 伺服器物件模型中的 SharePoint 命令,請將 Microsoft.VisualStudio.AssemblyAssets 項目在項目之下。將新項目的值到實作 VSIX 套件中 SharePoint 命令之組件的相對路徑。如需詳細資訊,請參閱資產的項目 (VSX 結構描述)。
如果擴充功能包含專案範本或項目範本,請將 ProjectTemplate 或 ItemTemplateAssets 項目在項目之下。將新項目的值加入至 VSIX 套件包含範本資料夾的相對路徑。如需詳細資訊,請參閱ProjectTemplate Element與ItemTemplate Element。
如果擴充功能包含專案範本或項目範本的自訂精靈,將 AssemblyAssets 項目在項目之下。將新項目的值到組件的相對路徑 VSIX 套件中,然後將屬性設定為 AssemblyName 完整組件名稱 (包括版本、文化特性和公開金鑰語彙基元)。如需詳細資訊,請參閱相依性項目 (VSX 結構描述)。
範例
下列範例顯示 SharePoint 工具擴充功能的 extension.vsixmanifest 檔案內容。副檔名在名為 Contoso.ProjectExtension.dll 的組件中實作。擴充功能包含名為 Contoso.ExtensionCommands.dll 和項目範本資料夾下 VSIX 套件中名為 [ItemTemplates]的 SharePoint 命令組件。此範例假設兩個組件都位於 VSIX 套件中與 extension.vsixmanifest 檔案相同的資料夾中。
<PackageManifest Version=”2.0.0” xmlns=”https://schemas.microsoft.com/developer/vsx-schema/2011”>
<Metadata>
<Identity Id="CustomActionProjectItem.Microsoft.b99efe4d-cef3-4afd-b9af-034ca0c52743" Version="1.0" Language="en-US" Publisher="Microsoft" />
<DisplayName>CustomActionProjectItem</DisplayName>
<Description>Empty VSIX Project.</Description>
</Metadata>
<Installation>
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="11.0" />
</Installation>
<Dependencies>
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" Version="4.5" />
</Dependencies>
<Assets>
<Asset Type="Microsoft.VisualStudio.ItemTemplate" Path="ItemTemplates" />
<Asset Type="Microsoft.VisualStudio.MefComponent" Path="ProjectItemDefinition.dll" />
</Assets>
</PackageManifest>
請參閱
概念
偵錯 Visual Studio 中 SharePoint 工具的擴充功能