[UWA] 一個編譯錯誤的怪現象

不知道是我最近特別運氣好,還是怎麼一回事,老是遇到奇怪的現象( 我都搞不清楚這應該算 bug 還 feature 了)。

        不知道是我最近特別運氣好,還是怎麼一回事,老是遇到奇怪的現象( 我都搞不清楚這應該算 bug 還 feature 了)。

 

 

        問題重現步驟

        1. 使用 Visual Studio 2015 建立一個新的 Universal Windows Application 專案 (命名為 TestApp01,這命名當然隨你開心的)。

A01

 

 

        2. 直接在 Debug Mode x86 組態下建置,確認沒有問題。

A02

A03

 

 

        3. 接著, 加入 Windows Desktop Extensions for UWP 與 Windows Mobile Extensions for UWP。

A04

 

 

 

        4. 同步驟 2 ,使用 Debug Mode x86 組態重新建置,確認建置沒有問題。

A05

 

 

        5. 在這個步驟,將建置組態改為 Release Mode x86,然後建置。

A06

 

 

         6. 奇妙的事情發生了,居然建置失敗!

A07

        上圖中有個值得注意的訊息『 ILC ?? ILC1004: ????? 'RdXmlPath' ??? 'C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\LibrryXML' ????』,各位有否注意到那個目錄 LibrryXML ?這個字拼錯了 (別問我為什麼會錯,我也被搞了很久),照著上面的指示打開檔案總管,看看那目錄正確的名稱是 『LibraryXML』。

A08

 

 

       7. 那要怎麼解決這個問題呢?目前我能想到的應急之計 (workaround) 就是把這目錄複製一份,把名稱改成錯誤訊息上所顯示的名稱。

A09

 

 

        8. 維持在 Release Mode x86 的組態,重新建置一次,這次就是成功的狀態了。

A10

 

        9. 附註:其實前面的編譯錯誤訊息是我遇到的第三種了,這個狀態似乎是隨機挑個目錄找你麻煩的。前兩次的附圖如下:

1_1

2_1

 

 

        這問題實在很煩人 ,現在我也只能想到複製改名這種爛招數暫時解決這個問題,如果有人照著做卻沒有問題的麻煩留言一下,我可能有需要去行天宮問一下關聖帝君了。如果你也有一樣的問題,那只好祈禱微軟的 Scrum 是真的有用,可以在下次發布 Update 時修正這問題。