共用方式為


散發 Managed Windows 執行階段元件

您可以藉由檔案複製發佈自己的 Windows 執行階段元件。不過,如果元件包含許多檔案,使用者就必須等待冗長的安裝過程。此外,放置檔案時發生的錯誤或參考設定失敗都可能會造成他們的問題。您可以將複雜元件封裝成 Visual Studio 擴充功能 SDK,方便安裝與使用。使用者只需為整個封裝設定一個參考。如 MSDN Library 中的安裝及管理 Visual Studio 工具和擴充功能 (英文) 所述,使用者可以透過 [擴充功能和更新] 對話方塊輕鬆地尋找並安裝元件。

規劃可發佈的 Windows 執行階段元件

選取二進位檔案 (例如您的 .winmd 檔案) 的唯一名稱。建議您遵循下列格式,確保名稱都具有唯一性:

company.product.purpose.extension
例如:Microsoft.Cpp.Build.dll

您的二進位檔案將安裝於應用程式封裝中,可能會與其他開發人員的二進位檔案放在一起。請參閱 MSDN Library 之建立軟體開發套件中的<擴充功能 SDK>章節 (英文)。

請先考慮元件的複雜性,再決定其發佈方式。符合下列條件時,建議使用擴充功能 SDK 或類似的封裝管理員:

  • 您的元件包含多個檔案。

  • 您為多個平台 (例如 x86 和 ARM) 提供不同的元件版本。

  • 您同時提供元件的偵錯與發行版本。

  • 您的元件包含只能在設計階段使用的檔案和組件。

如果符合上述多個條件,擴充功能 SDK 就特別有用。

注意事項注意事項

如果是複雜元件,NuGet 封裝管理系統 (英文) 可提供替代性開放原始碼來取代擴充功能 SDK。與擴充功能 SDK 一樣,NuGet 可讓您建立封裝以簡化元件的安裝作業。如需 NuGet 封裝和 Visual Studio 擴充功能 SDK 的比較,請參閱 MSDN Library 中的使用 NuGet 與擴充功能 SDK 加入參考的比較 (英文)。

藉由檔案複製發佈

如果元件是由單一 .winmd 檔案或由 .winmd 檔案和資源索引 (.pri) 檔案組成,您可以讓使用者僅複製 .winmd 就好。使用者可以將檔案放在專案中的任何地方,然後使用 [加入現有項目] 對話方塊將 .winmd 檔案加入至專案,再使用 [參考管理員] 對話方塊建立參考。如果您包含 .pri 檔案或 .xml 檔案,請告知使用者將這些檔案與 .winmd 檔案放在一起。

注意事項注意事項

當您建置 Windows 執行階段元件時,Visual Studio 2012 一律會產生 .pri 檔案,即使專案不含任何資源也一樣。如果您的測試應用程式包含元件,可以在 bin\debug\AppX 資料夾中檢查應用程式封裝的內容,判斷是否有使用 .pri 檔案。如果從元件產生的 .pri 檔案並未出現,表示您不必發佈元件。或者,您也可以使用 MakePRI.exe 工具命令選項 (英文) 傾印來自於 Windows 執行階段元件專案的資源檔。例如,您可以在 Visual Studio 命令提示字元視窗中輸入:

makepri dump /if MyComponent.pri /of MyComponent.pri.xml

如需 .pri 檔案的相關資訊,請參閱資源管理系統 (Windows) (英文)。

藉由擴充功能 SDK 發佈

複雜元件通常包括 Windows 資源,但是,請參閱上一節中關於偵測空白 .pri 檔案的內容。

若要建立擴充功能 SDK

  1. 確定您已安裝 Visual Studio 2012 SDK:您可以從 Visual Studio 的下載頁面 (英文) 下載 Visual Studio SDK。

  2. 使用 [VSIX 專案] 範本建立新專案:您可以在 [Visual C#] 或 [Visual Basic] 底下的 [擴充性] 分類中找到此範本。此範本是隨著 Visual Studio 2012 SDK 一起安裝 (MSDN Library 中的逐步解說:使用 C# 或 Visual Basic 建立 SDK (英文) 會透過非常簡單的案例,示範此範本的使用方式。)

  3. 判斷 SDK 的資料夾結構:資料夾結構的開頭位於 VSIX 專案的根層級,並且包含 ReferencesRedistDesignTime 資料夾。

    • References 是二進位檔案的位置,您的使用者可以針對這些檔案設計程式。擴充功能 SDK 會在使用者的 Visual Studio 專案中建立這些檔案的參考。

    • Redist 是必須與二進位檔案一同發佈之其他檔案的位置,在應用程式中是使用您的元件建立的。

    • DesignTime 是只有當開發人員在建立會用到您元件的應用程式時,所使用之檔案的位置。

    您可以在上述其中任何一個資料夾內建立組態資料夾,可以使用的名稱包含 debugretailCommonConfigurationCommonConfiguration 資料夾是用來存放零售或偵錯組建都會使用的相同檔案。如果您只發佈元件的零售版本,可以將所有檔案都放在 CommonConfiguration 中,然後省略另外兩個資料夾。

    在每個組態資料夾中,您都可以提供用來存放平台專屬檔案的架構資料夾。如果您針對所有平台都使用相同的檔案,可以提供一個名為 neutral 的資料夾。如需資料夾結構的詳細資訊 (包括其他架構資料夾名稱),請參閱 MSDN Library 中的建立軟體開發套件 (英文) (建立軟體開發套件中會討論平台 SDK 和擴充功能 SDK。您可能會發現摺疊平台 SDK 的相關章節可以有效避免混淆。)

  4. 建立 SDK 資訊清單檔:資訊清單會指定名稱和版本資訊、SDK 支援的架構、.NET Framework 版本,以及 Visual Studio 如何使用 SDK 等其他相關資訊。如需詳細資訊和範例,請參閱建立軟體開發套件 (英文)。

  5. 建置和發佈擴充功能 SDK如需包括當地語系化和簽署 VSIX 封裝在內的詳細資訊,請參閱 MSDN Library 中的 VSIX 部署 (英文)。

請參閱

其他資源

建立軟體開發套件

NuGet 封裝管理系統

資源管理系統 (Windows)

安裝及管理 Visual Studio 工具和擴充功能

MakePRI.exe 工具命令選項