共用方式為


部署 Visual Studio 中 SharePoint 工具的擴充功能

若要部署 SharePoint 工具擴充功能,請建立 Visual Studio 擴充功能 (VSIX) 套件,其中包含擴充功能組件和要與擴充功能一起散發的任何其他檔案。 VSIX 套件為符合「開放式封裝慣例」(OPC) 標準的壓縮檔。 VSIX 套件有 .vsix 副檔名。

建立 VSIX 套件之後,其他使用者就可以執行 .vsix 檔案來安裝您的擴充功能。 當使用者安裝您的擴充功能時,所有檔案都會安裝到 %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0\Extensions 資料夾。 若要部署擴充功能,您可以將 VSIX 套件上載至 Visual Studio Gallery 網站,或使用其他方式將套件散發至客戶,例如在網路共用或其他網站上裝載套件。

如需建立 VSIX 套件並將其部署到 Visual Studio 組件庫 (英文) 的詳細資訊,請參閱VSIX Deployment

您可以使用 Visual Studio 中的 [VSIX 專案] 範本,建立 VSIX 套件,或可以手動建立 VSIX 套件。

使用 VSIX 專案建立 VSIX 套件

您可以使用由 Visual Studio 2010 SDK 提供的 [VSIX 專案] 範本來建立 SharePoint 工具擴充功能的 VSIX 套件。 使用 VSIX 專案與手動建立 VSIX 套件相比,可提供數個優點:

  • 當您建立專案時,Visual Studio 會自動產生 VSIX 套件。 系統會為您執行將部署檔案加入至套件和建立套件之 [Content_Types].xml 檔案等這一類工作。

  • 您可以將 VSIX 專案設定為包含擴充功能專案的組建輸出和 VSIX 套件中的其他檔案,例如專案範本和項目範本。

如需使用 VSIX 專案的詳細資訊,請參閱VSIX Project Template

組織專案

根據預設,VSIX 專案只會產生 VSIX 套件,而不是組件。 因此,通常不需要在 VSIX 專案中實作 SharePoint 工具擴充功能。 一般至少會用到兩個專案:

  • VSIX 專案。

  • 實作擴充功能的類別庫專案。

也可能會用到某些擴充功能類型的其他專案:

如果在相同的 Visual Studio 方案中包含所有專案,則您可以修改 VSIX 專案中的 source.extension.vsixmanifest 檔案,以包含類別庫專案的組建輸出。

編輯 VSIX 資訊清單

您必須編輯 VSIX 專案中的 source.extension.vsixmanifest 檔案,以便包含所有要包含在擴充功能中之項目 (Item) 的項目 (Entry)。 編輯 source.extension.vsixmanifest 檔案時,Visual Studio 會在提供 UI 的設計工具中開啟該檔案,以便在該檔案中編輯 XML。 如需詳細資訊,請參閱 VSIX Manifest Designer

您必須在 source.extension.vsixmanifest 檔案加入下列項目 (Item) 的項目 (Entry):

  • 擴充功能組件。

  • 實作任何由擴充功能所用之 SharePoint 命令的組件。

  • 任何與擴充功能關聯的專案範本或項目範本。

  • 與擴充功能關聯之範本的自訂精靈。

下列程序說明如何在 .vsixmanifest 檔案加入每個這些項目 (Item) 的項目 (Entry):

若要包含擴充功能組件

  1. 在 VSIX 專案中,按兩下 source.extension.vsixmanifest 檔案將該檔案在設計工具中開啟。

  2. 在編輯器的 [內容] 區段中,按一下 [加入內容] 按鈕。

  3. 在 [加入內容] 對話方塊的 [選取內容類型] 清單方塊中,選取 [MEF 元件]。

  4. 在 [選取來源] 底下,執行下列其中一個步驟:

    • 如果擴充功能組件是從與 VSIX 專案相同方案中的專案建立的,請按一下 [專案] 選項按鈕,並選取其旁邊清單方塊中的專案名稱。

    • 如果擴充功能組件是做為檔案包含在專案中,請按一下 [專案中檔案] 選項按鈕,並選取其旁邊清單方塊中的組件。

    • 如果擴充功能組件位於其他位置,請按一下 [檔案] 選項按鈕,然後使用 [選擇檔案] 對話方塊來尋找和選取組件。

  5. 按一下 [確定]。

若要包含 SharePoint 命令組件

  1. 在 VSIX 專案中,按兩下 source.extension.vsixmanifest 檔案將該檔案在設計工具中開啟。

  2. 在編輯器的 [內容] 區段中,按一下 [加入內容] 按鈕。

  3. 在 [加入內容] 對話方塊的 [選取內容類型] 清單方塊中,選取 [自訂延伸類型]。

  4. 在 [類型] 文字方塊中,輸入 SharePoint.Commands.v4。 包含 SharePoint 命令的所有組件都需要這個值。

  5. 在 [選取來源] 底下,執行下列其中一個步驟:

    • 如果命令組件是從與 VSIX 專案相同方案中的專案建立的,請按一下 [專案] 選項按鈕,並選取其旁邊清單方塊中的命令專案名稱。

    • 如果命令組件是做為檔案包含在專案中,請按一下 [專案中檔案] 選項按鈕,並選取其旁邊清單方塊中的組件。

    • 如果命令組件位於其他位置,請按一下 [檔案] 選項按鈕,然後使用 [選擇檔案] 對話方塊來尋找和選取組件。

  6. 按一下 [確定]。

若要包含使用來自 Visual Studio SDK 之專案範本或項目範本專案建立的範本

  1. 在 VSIX 專案中,按兩下 source.extension.vsixmanifest 檔案將該檔案在設計工具中開啟。

  2. 在編輯器的 [內容] 區段中,按一下 [加入內容] 按鈕。

  3. 在 [加入內容] 對話方塊的 [選取內容類型] 下拉式方塊中,選取 [專案範本] 或 [項目範本]。

  4. 按一下 [選取來源] 底下的 [專案] 選項按鈕,並選取其旁邊清單方塊中的專案名稱。

  5. 按一下 [確定]。

  6. 在 [方案總管] 中,以滑鼠右鍵按一下專案範本或項目範本專案的節點,然後按一下 [卸載專案]。

  7. 再次以滑鼠右鍵按一下該專案節點,然後按一下 [編輯 YourTemplateProjectName**.csproj**] 或 [編輯 YourTemplateProjectName**.vbproj**]。

  8. 在專案檔中尋找下列 VSTemplate 項目。

    <VSTemplate Include="YourTemplateName.vstemplate">
    
  9. 以下列 XML 取代這個 VSTemplate 項目。

    <VSTemplate Include="YourTemplateName.vstemplate">
      <OutputSubPath>SharePoint\SharePoint14</OutputSubPath>
    </VSTemplate>
    

    OutputSubPath 項目會在您建置專案時用以建立專案範本的路徑中,指定其他資料夾。 這裡指定的資料夾,可確保項目範本只有在客戶於 [加入新的專案] 對話方塊中按一下 [SharePoint] 節點下的 [2010] 節點時才能使用。

  10. 儲存並關閉檔案。

  11. 在 [方案總管] 中,以滑鼠右鍵按一下專案範本或項目範本專案的節點,然後按一下 [重新載入專案]。

若要包含手動建立的範本

  1. 在 VSIX 專案中,將新資料夾加入至專案中以包含範本。

  2. 在這個新資料夾下,建立下列子資料夾,然後將範本 (.zip) 檔案加入至 Locale ID 資料夾。

         YourTemplateFolder

              SharePoint

                   SharePoint14

                        Locale ID

                             YourTemplateName.zip

    例如,如果具有名為 ContosoCustomAction.zip 且支援英文 (美國) 地區設定的項目範本,則完整路徑可能為 ItemTemplates\SharePoint\SharePoint14\1033\ContosoCustomAction.zip。

  3. 在 [方案總管] 中,按一下範本檔案 (YourTemplateName.zip)。

  4. 在 [屬性] 視窗中,將 [建置動作] 屬性設定為 [內容]。

  5. 按兩下 source.extension.vsixmanifest 檔案將該檔案在設計工具中開啟。

  6. 在編輯器的 [內容] 區段中,按一下 [加入內容] 按鈕。

  7. 在 [加入內容] 對話方塊中的 [選取內容類型] 下拉式方塊中,選取 [項目範本] 或 [專案範本]。

  8. 按一下 [選取來源] 底下的 [專案中檔案] 選項按鈕,並選取其旁邊清單方塊中的範本完整路徑。 例如,ItemTemplates\SharePoint\SharePoint14\1033\ContosoCustomAction.zip

  9. 按一下 [確定]。

若要包含專案範本或項目範本的精靈

  1. 在 VSIX 專案中,按兩下 source.extension.vsixmanifest 檔案將該檔案在設計工具中開啟。

  2. 在編輯器的 [內容] 區段中,按一下 [加入內容] 按鈕。

  3. 在 [加入內容] 對話方塊的 [選取內容類型] 清單方塊中,選取 [範本精靈]。

  4. 在 [選取來源] 底下,執行下列其中一個步驟:

    • 如果精靈組件是從與 VSIX 專案相同方案中的專案建立的,請按一下 [專案] 選項按鈕,並選取其旁邊清單方塊中的專案名稱。

    • 如果精靈組件是做為檔案包含在專案中,請按一下 [專案中檔案] 選項按鈕,並選取其旁邊清單方塊中的組件。

    • 如果精靈組件位於其他位置,請按一下 [檔案] 選項按鈕,然後使用 [選擇檔案] 對話方塊來尋找和選取組件。

  5. 按一下 [確定]。

相關的逐步解說

下表所列的逐步解說將說明如何使用 VSIX 專案部署不同類型的 SharePoint 工具擴充功能。

擴充功能類型

相關的逐步解說

只包含擴充功能組件的擴充功能

逐步解說:擴充 SharePoint 專案項目類型

逐步解說:建立 SharePoint 專案擴充功能

逐步解說:在伺服器總管擴充功能中呼叫 SharePoint 用戶端物件模型

任何包含 SharePoint 命令的擴充功能

逐步解說:建立 SharePoint 專案的自訂部署步驟

逐步解說:擴充伺服器總管以顯示 Web 組件

逐步解說:使用專案範本建立網站欄專案項目 (第 2 部分)

任何包含 Visual Studio 範本的擴充功能

逐步解說:使用項目範本建立自訂動作專案項目 (第 1 部分)

逐步解說:使用專案範本建立網站欄專案項目 (第 1 部分)

任何包含範本精靈的擴充功能

逐步解說:使用項目範本建立自訂動作專案項目 (第 2 部分)

逐步解說:使用專案範本建立網站欄專案項目 (第 2 部分)

手動建立 VSIX 套件

如果您想要手動建立用於 SharePoint 工具擴充功能的 VSIX 套件,請執行下列步驟:

  1. 建立 extension.vsixmanifest 檔案、[Content_Types].xml 和 VSIX 套件檔 (.vsix file)。 如需詳細資訊,請參閱 Anatomy of a VSIX PackageHow to: Manually Package an Extension (VSIX Deployment)

  2. 將擴充功能組件加入至 VSIX 套件。 如果擴充功能包含 SharePoint 命令,另請加入會對 VSIX 套件實作 SharePoint 命令的組件。

  3. 修改 extension.vsixmanifest 檔案:

    • 將 MefComponent 項目加入至 Content 項目之下。 將項目值設定為可實作 VSIX 套件中的擴充功能之組件的相對路徑。 如需詳細資訊,請參閱 MEFComponent Element (VSX Schema)

    • 如果您的擴充功能包含會呼叫 SharePoint 伺服器物件模型的 SharePoint 命令,請將新的 CustomExtension 項目加入至 Content 項目之下。 將項目值設定為可實作 VSIX 套件中的 SharePoint 命令之組件的相對路徑,並將 Type 屬性設定為 SharePoint.Commands.v4 值。 如需詳細資訊,請參閱 CustomExtension Element (VSX Schema)

    • 如果擴充功能包含專案範本或項目範本,請在 Content 項目底下加入新的 ProjectTemplate 或 ItemTemplate 項目。 將項目值設定為包含 VSIX 套件中的範本之資料夾的相對路徑。 如需詳細資訊,請參閱 ProjectTemplate Element (VSX Schema)ItemTemplate Element (VSX Schema)

    • 如果擴充功能包含專案範本或項目範本的自訂精靈,請在 Content 項目底下加入新的 Assembly 項目。 將項目值設定為 VSIX 套件中之組件的相對路徑,並將 AssemblyName 屬性設定為完整組件名稱 (包括版本、文化特性和公開金鑰語彙基元)。 如需詳細資訊,請參閱 Assembly Element (VSX Schema)

範例

下列範例顯示 SharePoint 工具擴充功能的 extension.vsixmanifest 檔案內容。 擴充功能實作在名為 Contoso.ProjectExtension.dll 的組件。 在 VSIX 套件的 [ItemTemplates] 資料夾底下,擴充功能包含名為 Contoso.ExtensionCommands.dll 的 SharePoint 命令組件和項目範本。 此範例假設兩個組件都位於 VSIX 套件中與 extension.vsixmanifest 檔案相同的資料夾中。

<?xml version="1.0" encoding="utf-8"?>
<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      Version="1.0.0" xmlns="https://schemas.microsoft.com/developer/vsx-schema/2010">
  <Identifier Id="CustomActionProjectItem.Contoso.b1d75407-01bd-459d-9d04-d12e9113af49">
    <Name>Custom Action Project Item</Name>
    <Author>Contoso</Author>
    <Version>1.0</Version>
    <Description xml:space="preserve">A SharePoint project item that represents a custom action.</Description>
    <Locale>1033</Locale>
    <SupportedProducts>
      <VisualStudio Version="10.0">
        <Edition>Pro</Edition>
      </VisualStudio>
    </SupportedProducts>
    <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.0" />
  </Identifier>
  <References />
  <Content>
    <MefComponent>Contoso.ProjectExtension.dll</MefComponent>
    <CustomExtension Type="SharePoint.Commands.v4">Contoso.ExtensionCommands.dll</CustomExtension>
    <ItemTemplate>ItemTemplates</ItemTemplate>
  </Content>
</Vsix>

請參閱

概念

擴充 SharePoint 專案系統

呼叫 SharePoint 物件模型

其他資源

在伺服器總管中擴充 SharePoint 連線節點

偵錯 Visual Studio 中 SharePoint 工具的擴充功能