我在使用VS2013更新4的空白Cordova应用程序构建时遇到错误。
在我安装了CTP3.1之后,我完成了使用Cordova构建一个空白应用程序的步骤。但是,这些时间都没有能够构建成功的工作应用程序。
错误消息如下所示:
1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):错误:fs.js:438 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):error:return binding.open(pathModule._makeLong (path),stringToFlags(flags),mode); 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):错误:^ 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):错误:错误:ENOENT,没有此类文件或目录' C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ node_modules \ vs-mda \ lib \ BuildSettings.js' 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):error:at Object.fs.openSync(fs)的.js:438:18) 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):error:at Object.fs.writeFileSync(fs)的.js:977:15) 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):error:at C:\ Program Files(x86 )\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ xoxorie2.tv3 \ packages \ vs-mda \ install.js:62:16 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):error:at Array.forEach(native) 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):error:at copyFiles(C:\ Program Files (x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ xoxorie2.tv3 \ packages \ vs-mda \ install.js:59:17) 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):error:at ChildProcess。 (C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ xoxorie2.tv3 \ packages \ vs-mda \ install.js:98:13) 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):error:at ChildProcess.emit(events.js :98:17) 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(207,5):error:at Process.ChildProcess._handle.onexit (child_process.js:810:12) 1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CordovaTools \ vs-mda-targets \ Microsoft.MDA.targets(219,5):error:安装本地npm包时出错。
我采取了解决问题的其他步骤(根据Google的搜索结果):
然后我检查了诊断日志。 我发现Visual Studio(VS)在一个不正确的目录中调用vs-cli.cmd,这是(VS安装目录\ Common7 \ IDE)。
我接下来要做的是从Microsoft.MDA.targets修改NpmInstallDir。这是扩展NpmInstallDir的(Extensions \ xoxorie2.tv3 \ packages),因为vs-cli.cmd在该目录中。
然后我重启了VS,清理了解决方案,似乎这个问题可能已经解决了。
然而,当我选择:
Ripple模拟器
虽然上面的错误消息消失了,并且打开了新的Chrome浏览器窗口,但应用程序会报告连接错误并且VS窗口会挂起一段时间。暂停一段时间后,VS控制台输出报告:
无法获取端口9223的Ripple会话信息,因为Visual Studio正在以提升模式运行。请关闭所有Chrome实例并以常规用户模式重新启动Visual Studio。
当我选择时:
设备或 Android模拟器
错误3 ------无法复制文件c:\ BlankCordovaApp1 \ BlankCordovaApp1 \ node_modules \ vs-mda \ node_modules \ cordova \ node_modules \ cordova-lib \ node_modules \ cordova-js \ node_modules \ browserify \ node_modules \ browser-pack \ node_modules \ combine-source-map \ node_modules \ convert-source-map.npmignore to www \ node_modules \ vs-mda \ node_modules \ cordova \ node_modules \ cordova-lib \ node_modules \ cordova-js \ node_modules \ browserify \ node_modules \ browser-pack \ node_modules \ combine-source-map \ node_modules \ convert-source-map.npmignore指定的路径,文件名或两者都太长。完全限定的文件名必须少于260个字符,目录名必须少于248个字符c:\ BlankCordovaApp1 \ BlankCordovaApp1 \ MDAVSCLI 1 1 BlankCordovaApp1
如果我改变构建模式(调试,发布或分发),那就重要了,因为我有相同的结果。
正如我上面提到的,我真正想问的是:
这些错误困扰了我好几天,我真的生气了。
因此希望有人可以帮我解决这些问题。任何帮助将不胜感激。
答案 0 :(得分:0)
我在Visual Studio中也是Cordova的新手,我在编译项目时遇到了很多很多问题。经过多次尝试,如果我使用SPACE的任何用户名登录Windows 7,例如," Kenneth Li"并安装CTP3.1,构建失败。
然后我在Windows 7中创建另一个用户,例如"肯"或"管理员",并卸载/重新安装CTP3.1,构建成功,我不知道为什么!除了用户名登录不同外,项目中的所有内容都是相同的!
顺便说一句,可能是,也许是,你的项目的路径也不应包含任何空格,如果这是造成问题的原因,请告诉我。
2015/05/04更新:
嗨,hcw,
我猜(来自你的logo)你是香港的开发者,和我一样。我在3个平台的Visual Studio中尝试过Cordova:1。Windows 7 Ultimate 64位。 2. Windows 8.1 Ultimate 64位。 3. Windows Server 2012 R2。
安装程序在Windows 7和Windows Server 2012 R2中没有任何问题。在Windows 8.1中,我发现非常罕见,我列出了我的程序如下:
安装Windows 8.1
在控制面板"程序和功能"中,打开与" .NET 3.5"
安装所有需要.NET 3.5的应用程序,例如Office 2010,SQL Server 2008,CorelDraw x6 ......
如果我现在尝试安装vs_community.exe(即Visual Studio 2013 Communiy with Update 4),则无法打开安装exe。我必须在控制面板内关闭.NET 3.5。
关闭.NET 3.5后,我无法再打开它! (这就是为什么我需要在安装vs_community.exe之前安装所有需要.NET 3.5的应用程序。
现在我可以毫无问题地安装vs_community.exe。
如果我在香港,那么我安装vs2013mda_0.3.1.exe(即Cordova for Visual Studio CTP 3.1),这一步需要大约1到2个小时。但是,如果我在中国,我需要首先使用VPN连接到HK,否则vs2013mda_0.3.1.exe无法成功安装,我想问题是中国阻止了一些网址vs2013mda_0.3.1.exe需要,所以如果我在中国,这个步骤需要大约6到8个小时,因为vpn很慢。
现在我可以创建一个空白的Cordova项目并进行编译而不会出现任何错误。但是,Windows 8.1 machince永远不能安装任何其他需要.NET 3.5