VisualStudio 編譯檔案的小技巧

VisualStudio 編譯檔案的小技巧

最近有個手機專案,需要把APP分成DEV和UAT。

 

windows phone 的 app都是根據 WMAppManifest.xml 內的 ProductID 做區分,

 

所以要在手機裡同時有 DEV 和 UAT 的 APP,就必須有不同的WMAppManifest.xml ,

 

身為一個懶散的工程師,是千萬不會想要手動改的!

 

接下來就來試試看要怎麼設定!!

 

首先在 Solution 上點滑鼠右鍵,選擇 Properties 項目

 

image

 

點選左邊 Configuration Properties ,這樣右上角的 Configuration Manager 就可以點選,

 

點了之後會出現 Configuration Manager 對話框

 

image

 

左上角下拉選單選擇 <New...> ,會出現 New Solution Configuration 對話框,

 

image

 

名字取UAT,然後 Copy setting from 懶得自己改的話就直接選 Debug 了,決定之後按 OK

 

這樣在編譯選項就會出現剛剛增加的 UAT 項目

 

image

 

DEV 也用一樣的方式產生出來,

 

再來我們要準備幾個檔案,

 

image

 

 在專案的 Properties 資料夾內複製三個 WMAppManifest.xml 用來當作 UAT,DEV 以及其他專用,

 

名字就取 WMAppManifest_UAT.xml 、WMAppManifest_DEV.xml 、WMAppManifest_Base.xml 。

 

當然,要修改一下內容,

 

image

 

上面是原本的 WMAppManifest.xml ,App 名稱是 Wp8, 下面是 UAT 用的,除了 App 名稱改成 Wp8 UAT 之外,ProductID 也改變了號碼,

 

這幾個 WMAppManifest_XXX.xml 檔案不用加到專案中。

 

接著在專案的 Properties 內的 Build Events 裡有兩個 command line 可以加入,

 

image

 

上面的 Pre-build event command line 是編譯前會執行,下面就是編譯後執行

 

讓我們在編譯前執行以下指令

del "$(ProjectDir)Properties\WMAppManifest.xml"
 
if "DEV"=="$(ConfigurationName)" (
    copy "$(ProjectDir)Properties\WMAppManifest_DEV.xml" "$(ProjectDir)Properties\WMAppManifest.xml"
) else if "UAT"=="$(ConfigurationName)" (
    copy "$(ProjectDir)Properties\WMAppManifest_UAT.xml" "$(ProjectDir)Properties\WMAppManifest.xml"
) else (
    copy "$(ProjectDir)Properties\WMAppManifest_Base.xml" "$(ProjectDir)Properties\WMAppManifest.xml"
)

 

他會在編譯前先把 WMAppManifest.xml  檔案刪掉,然後根據現在編譯的設定複製相對應的 WMAppManifest.xml 檔案。

 

如此就可以根據編譯的設定檔來決定產生的是 UAT 版本還是 DEV 版本了。

 

最後,如果這兩個版本都要交給客戶,那麼在 Post-build event command line 內執行

 

del "$(TargetDir)Wp8_$(ConfigurationName).xap"
copy "$(TargetDir)Wp8.xap" "$(TargetDir)Wp8_$(ConfigurationName).xap"

 

即可在編譯產生 xap 檔之後另外複製出 DEV 或 UAT 的檔案,給客戶的時候也不用改名字拉,多方便啊!