1. 程式人生 > >遷移桌面程式到MS Store(1)——通過Visual Studio建立Packaging工程

遷移桌面程式到MS Store(1)——通過Visual Studio建立Packaging工程

        之前跑去做了一年多的iOS開發,被XCode噁心得不行。做人呢,最重要的是開心。所以我就炒了公司魷魚,挪了個窩回頭去做Windows開發了。        UWP什麼的很久沒有正兒八經寫了,國內的需求非常少。傳統的桌面開發倒是因為人越來越少了,需求還在,有少量還不錯的職位。現在在做WPF的專案,公司層面倒是很願意遷移到UWP,但是遷移起來會有很多的困難和限制。同時有這方面熱情,且知道怎麼去做的人就更少了。        接下來會通過幾個短篇來介紹如何通過Desktop Bridge來遷移桌面程式到MS Store,這塊的學習我還沒有深入,祈禱一下不會很快就太監了……        其實如果僅僅是要求把exe打包成appx的話,許可權方面並沒有什麼特殊的要求。但是預設情況下,如果需要提交商店並通過稽核的話,應用程式需要能夠執行在Windows 10 S模式下。MSDN的原話是All apps submitted to the Microsoft Store must be compatible with Windows 10 S. Apps that aren't compatible won't be accepted in the store.        這個就比較嚴格了,簡單舉例如下:

  •     APP不能要求admin許可權
  •     APP不能包含Windows Service
  •     APP不能像exe程式那樣直接在執行目錄寫檔案
  •     APP不能直接執行另一個exe程式

        以上這些在傳統桌面程式中算是常見了,所以只要稍微複雜一點的exe程式,在遷移的時候就會遇到各種各樣的問題。        今天的第一篇我們首先來處理一下最簡單的情況,即移植一個標準的,同時符合商店許可權要求的WPF程式。        第一步我們先建立一個空的WPF工程。執行起來是一個空白的窗體。工程檔案結構也很簡單,見Solution Explorer。

        接下來我們要建立一個Packaging工程來對WPF工程進行打包,最終通過Packaging工程來生成APPX檔案。可以在Windows Universal目錄下找到Windows Application Packaging Project

        接下來我們要建立一個Packaging工程來對WPF工程進行打包,最終通過P點選OK建立完成後,記得要在Applications中新增對WPF工程的引用。同時我們還可以看到Images資料夾下對應的圖片,是轉換完成後的磁貼圖示。不更新的話在開始選單裡就是預設的方塊叉圖示。ckaging工程來生成APPX檔案。可以在Windows Universal目錄下找到Windows Application Packaging Project

        通過Visual Studio新增Packaging工程的優點是,我們可以方便的除錯原來的WPF程式。這裡我們將啟示專案Startup Project設定為SimpleWpfAppPackaging後,按F5執行是可以直接除錯SimpleWpfApp工程的。我們可以加個斷點試試,體驗可以說是無縫連結必須好評了。成功執行程式後,你會在開始選單中發現SimpleWpfAppPackaging。

        再接著就是建立APPX等檔案提交商店了。Packaging工程上通過右鍵選單Store -> Create App Packages… 再往後的流程就是和純的UWP工程一模一樣了。

        假設我們給APPX的名字也命名為SimpleWpfAppPackaging,那麼我們可以得到以下APPXUPLOAD檔案。這個檔案就是提交到商店進行稽核的最終檔案。

        本篇先做了一個最基本的介紹,希望能留下對遷移工程的初步印象,後面我們會接著討論一般情況下,遷移工作可能會遇到的問題和解決方案。        本篇相關程式碼地址:https://github.com/manupstairs/DesktopBridgeSamples