Visual Studio 2013构建中的空白Cordova应用程序失败/其他问题

时间:2015-04-28 08:21:32

标签: cordova visual-studio-2013 visual-studio-cordova ripple

我在使用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的搜索结果):

  • 修复CTP3.1工具
  • 重新安装CTP3.1
  • 清除工具中的cordova缓存>选项
  • 清洁解决方案
  • 使用" npm install -g(包的完整路径)/ vs-mda"使用管理员命令提示符
  • 手动将vs-mda文件夹移动到项目文件夹的node_modules和%AppData%\ Roaming \ npm \ node_modules

然后我检查了诊断日志。 我发现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

如果我改变构建模式(调试,发布或分发),那就重要了,因为我有相同的结果。

正如我上面提到的,我真正想问的是:

  • 我看不到需要更改Microsoft.MDA.targets文件。为什么别人不必修改此文件才能成功构建?
  • 如何解决Ripple仿真器的悬挂问题?
  • 如何解决因长目录名称问题导致的构建失败? (我只想说限制目录名是微软制定的一个愚蠢的限制)

这些错误困扰了我好几天,我真的生气了。

因此希望有人可以帮我解决这些问题。任何帮助将不胜感激。

1 个答案:

答案 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中,我发现非常罕见,我列出了我的程序如下:

  1. 安装Windows 8.1

  2. 在控制面板"程序和功能"中,打开与" .NET 3.5"

  3. 相关的所有功能
  4. 安装所有需要.NET 3.5的应用程序,例如Office 2010,SQL Server 2008,CorelDraw x6 ......

  5. 如果我现在尝试安装vs_community.exe(即Visual Studio 2013 Communiy with Update 4),则无法打开安装exe。我必须在控制面板内关闭.NET 3.5。

  6. 关闭.NET 3.5后,我无法再打开它! (这就是为什么我需要在安装vs_community.exe之前安装所有需要.NET 3.5的应用程序。

  7. 现在我可以毫无问题地安装vs_community.exe。

  8. 如果我在香港,那么我安装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很慢。

  9. 现在我可以创建一个空白的Cordova项目并进行编译而不会出现任何错误。但是,Windows 8.1 machince永远不能安装任何其他需要.NET 3.5

  10. 的应用程序