共用方式為


了解您的安裝程式

本文列出將現有安裝程序轉換成 MSIX 之前必須知道的事項。 您可能不需要執行太多動作,讓應用程式準備好進行封裝程式,但如果下列任何專案適用於您的應用程式,則必須在封裝之前加以解決。

  • 您的應用程式有服務。 我們支援使用 服務轉換應用程式,但請務必記住 轉換服務的限制 。 轉換之後,您需要系統管理員提高許可權,才能安裝包含服務的 MSIX。 您可以使用從 MSIX 封裝工具 1.2019.1220.0 版開始的服務來轉換應用程式,而且您可以從 Windows 10 2020 年春季版本開始部署具有服務的 MSIX。

  • 您的安裝程式需要重新啟動。 如果您的安裝程式需要 重新啟動,MSIX 封裝工具從 1.2019.701.0 版開始支援此功能。 如果您的安裝程式傳回不常見的結束代碼,表示它需要重新啟動,您應該將其新增至 MSIX 封裝工具設定的重新啟動結束代碼 區段。

  • 您的 .NET 應用程式需要 4.6.2 之前的 .NET Framework 版本。 如果您要封裝 .NET 應用程式,我們建議應用程式將 .NET Framework 4.6.2 或更新版本設為目標。 能夠安裝和執行已封裝傳統型應用程式的能力,最先是在 Windows 10 版本 1607 (也稱為年度更新版) 中引進,而此 OS 版本預設會包含 .NET Framework 4.6.2。 更新的作業系統版本包含更新版本的 .NET Framework。 如需更新 Windows 10 版本中包含哪些 .NET 版本的完整清單,請參閱這篇文章

    在封裝的傳統型應用程式中,將 4.6.2 之前的 .NET Framework 版本設為目標,預期可在大部分情況下運作。 不過,如果您將 4.6.2 之前的版本設為目標,應該先完整測試封裝的傳統型應用程式,然後再將其散發給使用者。

    • 4.0 - 4.6.1:以這些 .NET Framework 版本為目標的應用程式預期會在 4.6.2 或更新版本上執行,而不會發生問題。 因此,無需變更,這些應用程式即可在 Windows 10 版本 1607 版或更新版本,以及作業系統隨附的 .NET Framework 版本上安裝及執行。

    • 2.0 和 3.5:在我們的測試中,以這些 .NET Framework 版本為目標的封裝傳統型應用程式通常會運作,但在某些情況下可能會顯示效能問題。 為了讓這些封裝的應用程式能夠安裝和執行,必須在目標電腦上安裝 .NET Framework 3.5 功能 (此功能也包含 .NET Framework 2.0 和 3.0)。 您也應該在封裝這些應用程式之後徹底測試。

  • 您的應用程式需要驅動程式。 MSIX 不支援驅動程式。

  • 您的應用程式會寫入 AppData 資料夾或登錄,以便與其他應用程式共用資料。 轉換之後,系統會將 AppData 重新導向至本機 app 資料存放區,此為每一個應用程式的私人存放區。

    您的應用程式寫入至 HKEY_LOCAL_MACHINE 登錄區的所有項目都會重新導向至隔離的二進位檔,而應用程式寫入至 HKEY_CURRENT_USER 登錄區的任何項目都會放到私人的各個使用者、各個應用程式位置。 如需檔案和登錄重新導向的詳細資訊,請參閱傳統型橋接器的幕後作業

  • 您的應用程式會寫入應用程式的安裝目錄。 例如,您的應用程式所寫入的記錄檔是放在與 exe 相同的目錄中。 因為資料夾受到保護,因此不支援此專案。 建議您寫入另一個位置,例如本機應用程式數據存放區。 我們新增了可在 1809 和更新版本中允許此功能的功能。

  • 您的應用程式會使用目前的工作目錄。 在執行階段,已封裝的傳統型應用程式將不會取得您先前在桌面 .LNK 捷徑中指定的相同工作目錄。 如果您的應用程式必須擁有正確的目錄才能正確運作,則需要在執行階段變更 CWD。

  • 您的應用程式會從 Windows 並列資料夾安裝與載入組件。 例如,您的應用程式使用 C 執行時間連結庫 VC8 或 VC9,並從 Windows 並存資料夾動態連結它們,這表示您的程式代碼使用共享資料夾中的通用 DLL 檔案,例如 C:\Windows\WinSxS。 不支援此連結方式。 您必須將可轉散發連結庫檔案直接連結到您的程式代碼,以靜態方式連結它們。

其他考量

  • 在適當的架構上重新封裝安裝程式。 如果您的安裝程式是要安裝在 x86 計算機上。 請務必在 x86 計算機上重新封裝安裝程式。 這適用於適用於 x64 電腦的安裝程式。

    注意

    如果您的應用程式需要寫入安裝目錄,或使用目前的工作目錄,您也可以考慮使用套件支援架構,將執行階段修復新增至套件。 如需詳細資料,請參閱這篇文章