Win10开发UWP使用.Net Native编译时遇到的一些问题。
最近開始嘗試把WP8.1 Runtime的項目升級成Win10 UWP,我用的方法沒什么技巧性,就是直接復制文件和代碼到新建的UWP項目。結果是后臺代碼未經(jīng)修改,全部正常運行。但是UI控件的布局有些偏移,需要微調。這和“Win10 UWP架構是8.1 Runtime的超集”的說法吻合,所以大家也不用太擔心升級UWP很困難。我相信遷移應用的主要工作量在由于新的設計風格,而需要修改UI設計,同時也要考慮多平臺的響應式布局等等。。。
.NET Native
回到文章的主題,Win10 UWP使用了新的編譯技術 .Net Native。據(jù)介紹:
".NET Native可以將C#代碼編譯為本地機器碼。據(jù)博客介紹,.NET Native可以優(yōu)化所有的Windows Store應用。使用.NET Native編譯Windows Store應用程序,應用啟動速度將加快60%,并且內存占用更小,這主要得益于開發(fā)團隊優(yōu)化.NET Native運行時(CLR的一個重構和優(yōu)化)和使用先進的Microsoft VC++優(yōu)化器后端。此外,最令開發(fā)者興奮地是,使用.NET Native不僅會讓應用擁有C++般的性能表現(xiàn),還可以實現(xiàn)C#般的生產(chǎn)力。"
總而言之,這是個提高性能的好東西。。。但是目前我還是遇到了一些現(xiàn)象和小問題。
1.編譯時間長
這個其實不是錯,犧牲編譯時間,換運行時間挺值的。因為編譯成機器碼,工作量更大了,所以時間長了。在我的i5-3230m的筆記本上,編譯官方給的小Sample都需要3分鐘左右。我們這種菜鳥也終于可以像大神一樣,點擊編譯就出去喝茶了。。。由于這個原因,微軟設定了Debug模式下默認采用原來的.Net Core Runtime的方式編譯,速度較快。Release模式的時候才采用.Net Native。
?
由于Debug默認不使用.Net Native編譯,這樣在調試斷點的時候,有些數(shù)據(jù)會看不到。。。這時候你可以去掉Release的“優(yōu)化代碼”選項,或者新增一個等效的模式再調試。
2.項目路徑含中文會導致編譯錯誤
我在Debug的時候,一切正常的,Release的時候,卻報錯了,還是嚇人的一長串。。。
經(jīng)過搜索、網(wǎng)友的提醒,最終發(fā)現(xiàn)是項目路徑帶中文引起的。
C:\Users\雙華\Documents\Visual Studio 2015\Projects\。。。由于微軟賬號填的是中文名,這些路徑都自帶中文了。_(:з」∠)_
3.同時引用Desktop 和 Mobile Extension SDK,則編譯失敗
Destop 和 Mobile Extension SDK是兩個拓展SDK,包含一些各自平臺的專有API。
但是目前在VS2015中,如果同時引用兩個SDK,通過.Net Native編譯(如Release時)會失敗。錯誤類似上一個問題,里面寫了大量 \Microsoft.NetNative\x86\ilc\ilc.exe, Windows Kits
經(jīng)過一番搜索,發(fā)現(xiàn)已經(jīng)有人解決了。方法如下:
點此訪問原文
點此下載文中提到的Microsoft.NetNative.targets文件(放到百度云上了)
吐槽:微軟的測試水平下降了。。。
以上。
轉載于:https://www.cnblogs.com/aureate-sunshine/p/4781002.html
總結
以上是生活随笔為你收集整理的Win10开发UWP使用.Net Native编译时遇到的一些问题。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac下Sublime text2中文乱
- 下一篇: 设计模式(三):观察者模式与发布/订阅模