散發 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
確定您已安裝 Visual Studio 2012 SDK:您可以從 Visual Studio 的下載頁面 (英文) 下載 Visual Studio SDK。
使用 [VSIX 專案] 範本建立新專案:您可以在 [Visual C#] 或 [Visual Basic] 底下的 [擴充性] 分類中找到此範本。此範本是隨著 Visual Studio 2012 SDK 一起安裝 (MSDN Library 中的逐步解說:使用 C# 或 Visual Basic 建立 SDK (英文) 會透過非常簡單的案例,示範此範本的使用方式。)
判斷 SDK 的資料夾結構:資料夾結構的開頭位於 VSIX 專案的根層級,並且包含 References、Redist 和 DesignTime 資料夾。
References 是二進位檔案的位置,您的使用者可以針對這些檔案設計程式。擴充功能 SDK 會在使用者的 Visual Studio 專案中建立這些檔案的參考。
Redist 是必須與二進位檔案一同發佈之其他檔案的位置,在應用程式中是使用您的元件建立的。
DesignTime 是只有當開發人員在建立會用到您元件的應用程式時,所使用之檔案的位置。
您可以在上述其中任何一個資料夾內建立組態資料夾,可以使用的名稱包含 debug、retail 和 CommonConfiguration。CommonConfiguration 資料夾是用來存放零售或偵錯組建都會使用的相同檔案。如果您只發佈元件的零售版本,可以將所有檔案都放在 CommonConfiguration 中,然後省略另外兩個資料夾。
在每個組態資料夾中,您都可以提供用來存放平台專屬檔案的架構資料夾。如果您針對所有平台都使用相同的檔案,可以提供一個名為 neutral 的資料夾。如需資料夾結構的詳細資訊 (包括其他架構資料夾名稱),請參閱 MSDN Library 中的建立軟體開發套件 (英文) (建立軟體開發套件中會討論平台 SDK 和擴充功能 SDK。您可能會發現摺疊平台 SDK 的相關章節可以有效避免混淆。)
建立 SDK 資訊清單檔:資訊清單會指定名稱和版本資訊、SDK 支援的架構、.NET Framework 版本,以及 Visual Studio 如何使用 SDK 等其他相關資訊。如需詳細資訊和範例,請參閱建立軟體開發套件 (英文)。
建置和發佈擴充功能 SDK如需包括當地語系化和簽署 VSIX 封裝在內的詳細資訊,請參閱 MSDN Library 中的 VSIX 部署 (英文)。