• <Win10开发>UWP使用.Net Native编译时遇到的一些问题。


      最近开始尝试把WP8.1 Runtime的项目升级成Win10 UWP,我用的方法没什么技巧性,就是直接复制文件和代码到新建的UWP项目。结果是后台代码未经修改,全部正常运行。但是UI控件的布局有些偏移,需要微调。这和“Win10 UWP架构是8.1 Runtime的超集”的说法吻合,所以大家也不用太担心升级UWP很困难。我相信迁移应用的主要工作量在由于新的设计风格,而需要修改UI设计,同时也要考虑多平台的响应式布局等等。。。

      .NET Native

      回到文章的主题,Win10 UWP使用了新的编译技术 .Net Native。据介绍:

      ".NET Native可以将C#代码编译为本地机器码。据博客介绍,.NET Native可以优化所有的Windows Store应用。使用.NET Native编译Windows Store应用程序,应用启动速度将加快60%,并且内存占用更小,这主要得益于开发团队优化.NET Native运行时(CLR的一个重构和优化)和使用先进的Microsoft VC++优化器后端。此外,最令开发者兴奋地是,使用.NET Native不仅会让应用拥有C++般的性能表现,还可以实现C#般的生产力。"

      总而言之,这是个提高性能的好东西。。。但是目前我还是遇到了一些现象和小问题。

      1.编译时间长

      这个其实不是错,牺牲编译时间,换运行时间挺值的。因为编译成机器码,工作量更大了,所以时间长了。在我的i5-3230m的笔记本上,编译官方给的小Sample都需要3分钟左右。我们这种菜鸟也终于可以像大神一样,点击编译就出去喝茶了。。。由于这个原因,微软设定了Debug模式下默认采用原来的.Net Core Runtime的方式编译,速度较快。Release模式的时候才采用.Net Native。

       

      由于Debug默认不使用.Net Native编译,这样在调试断点的时候,有些数据会看不到。。。这时候你可以去掉Release的“优化代码”选项,或者新增一个等效的模式再调试。

      2.项目路径含中文会导致编译错误

      我在Debug的时候,一切正常的,Release的时候,却报错了,还是吓人的一长串。。。

      

      经过搜索、网友的提醒,最终发现是项目路径带中文引起的。

      C:Users双华DocumentsVisual Studio 2015Projects。。。由于微软账号填的是中文名,这些路径都自带中文了。_(:з」∠)_

      3.同时引用Desktop 和 Mobile Extension SDK,则编译失败

      Destop 和 Mobile Extension SDK是两个拓展SDK,包含一些各自平台的专有API。

      

      但是目前在VS2015中,如果同时引用两个SDK,通过.Net Native编译(如Release时)会失败。错误类似上一个问题,里面写了大量 Microsoft.NetNativex86ilcilc.exe, Windows Kits

      经过一番搜索,发现已经有人解决了。方法如下:

          

      点此访问原文

      点此下载文中提到的Microsoft.NetNative.targets文件(放到百度云上了)

      吐槽:微软的测试水平下降了。。。

      以上。

      

      

  • 相关阅读:
    S2dao 简单Demo(转)
    Iphone SDK textField 打开和关闭键盘
    s2dao 入门知识2
    Eclipse tomcat Web页面调试
    s2dao 入门知识1
    java 面试
    Iphone SDK ActionSheet 在当前窗口弹出时间选择
    杭电2044
    杭电2076
    杭电2077
  • 原文地址:https://www.cnblogs.com/aureate-sunshine/p/4781002.html
Copyright © 2020-2023  润新知