[Cordova] 无法编译Visual Studio项目里Plugin副本的Native Code
问题情景
开发Cordova Plugin的时候,开发的流程应该是:
- 建立Cordova Plugin
- 发布到本机文件系统或是Git服务器
- 使用Visual Studio挂载Plugin
- 编译并执行项目
在这个开发的过程中,如果在编译并执行项目的这个步骤,发现Plugin的Native Code需要修正。直觉的想法,会是直接修改Cordova项目里Plugin副本的Native Code之后,再重新编译并执行项目,来确认看看修改是否正确。而实际这样去执行,会发现修改Plugin副本的Native Code,再重新编译项目的时候,修改内容并不会被编译与执行。(清除项目再重建也是一样的结果)
解决方案
经过排查各种操作方式之后,推测发生上述问题的原因,应该是Cordova为了缩短编译的时间,Plugin里面的Native Code只有在必要的时候才会编译。而修改Plugin副本Native Code的这个动作,在目前这个版本(14.0.50925.4),显然不是定义为需要侦测并且重新编译的范围。
知道问题的原因之后,解决方案也就很简单。既然修改Plugin副本Native Code的这个动作并不会触发重新编译,那就直接删除Cordova的编译结果:「platforms文件夹」,强迫Cordova重新编译项目,这样就可以让修改过的Native Code被Cordova给重新编译。