部署概觀

本節中的主題介紹部署有關不同類型的 Windows 應用程式的選項和指引。

封裝應用程式的優缺點

您的第一個決策為是否封裝您的應用程式。

  • 已封裝應用程式。 封裝的應用程式是唯一在執行階段具有套件識別資料的應用程式種類。 許多 Windows 擴充性功能都需要套件識別資料,包括背景工作、通知、動態磚、自訂操作功能表延伸模組和共用目標。 這是因為作業系統 (OS) 必須能夠識別對應 API 的呼叫端。 請參閱需要套件識別資料的功能
    • 通常,已封裝的應用程式程序會在輕量型應用程式容器內執行,並使用檔案系統和登錄虛擬化進行隔離 (請參閱適用於舊版應用程式的 AppContainerMSIX AppContainer 應用程式)。 但是,您可以將已封裝的應用程式設定為無法在應用程式容器中執行。
    • 封裝的應用程式是使用 MSIX 技術封裝的 (請參閱什麼是 MSIX?)。
    • 具有外部位置的封裝應用程式。 但是,由於某些現有的應用程式尚未準備好讓其所有內容都存在於 MSIX 套件內,因此有一個選項可讓您的應用程式使用外部位置封裝。 這可讓您的應用程式具有套件識別資料;因此,能夠使用需要的功能。 如需詳細資訊,請參閱使用外部位置封裝來授與套件識別資料
    • 也會使用 MSIX 來安裝已封裝的應用程式。 但是,如果您選擇使用外部位置封裝,則可以將其視為「自備安裝程式」模型。 因此,將會有一些安裝程式可供您與該選項搭配使用。 它基本上是已封裝和未封裝應用程式之間的混合式選項。
  • 未封裝的應用程式。 您可以藉由建立未封裝的應用程式,選擇完全不使用 MSIX。 但請注意,未封裝的應用程式在執行階段時並沒有套件識別資料;因此會遺漏某些 Windows 功能 (請參閱所需套件識別資料的功能)。

每種應用程式類型都可以發佈至 Microsoft Store,並以該方式或透過 Windows 應用程式安裝程式進行安裝。

重要

建議您封裝應用程式並做設定,以在應用程式容器中執行。 這會為您的客戶提供順暢、現代化且可靠的安裝與更新體驗; 且會在執行階段受到保護。

已封裝 (並且選擇性地在應用程式容器中執行) 在外部位置進行封裝或未封裝
優點 讓使用者輕鬆安裝、解除安裝和更新您的應用程式。 解除安裝應用程式時,解除安裝是乾淨的,系統會還原到安裝之前的狀態,不會留下任何成品。 這類應用程式也支援累加式和自動更新。 Microsoft Store 會針對這類應用程式進行最佳化 (儘管它們可以在市集內或市集外使用)。

您可以享有套件識別資料的優點。
有了這些選項,您的應用程式在種類、可以呼叫的 API 和對註冊表和檔案系統的存取方面都不受限制。

使用外部位置進行封裝表示您可以取得套件識別資料的優點。
缺點 您的應用程式在應用程式種類及其可在系統中擁有的代理程式方面受到限制。 例如,無法使用 NT 服務。 處理序間通訊 (IPC) 選項受到限制;如果您要發佈至 Microsoft Store,則特殊權限/提升存取權會受到限制;檔案/登錄存取權已虛擬化 (但也請參閱彈性虛擬化)。 在某些情況下,企業原則可以透過停用 Microsoft Store 來停用更新。 使用這些選項時,該應用程式可能會在解除安裝之後導致過時的組態資料和軟體殘留累積的風險。 這對客戶和系統而言都可能造成問題。

您的應用程式通常會使用 .exe.msi 檔案,或透過其他安裝和更新解決方案來安裝及更新;使用自訂安裝程式、ClickOnce 或 xcopy 部署。

未封裝的應用程式缺少享有套件識別資料的優點。

如需套件安裝位置、工作目錄以及檔案和登錄虛擬化的詳細資訊,請參閱了解已封裝傳統型應用程式如何在 Windows 上執行

使用 Windows 應用程式 SDK

決定是否要封裝應用程式之後,您可以接著決定是否要在應用程式中使用 Windows 應用程式 SDK。 請參閱 Windows 應用程式 SDK 部署概觀

Win32 和 .NET 傳統型應用程式

如果您建置 Win32 傳統型應用程式 (有時稱為傳統型桌面應用程式),或 .NET 應用程式,包括 Windows Presentation Foundation (WPF) 和 Windows Forms (WinForms),則可以使用 MSIX 封裝和部署應用程式。

您也可以使用其他安裝技術封裝和部署這些類型的應用程式。

UWP 應用程式

UWP 應用程式使用 MSIX 封裝和部署。