Visual Studio 2013 VS工具Cordova CTP3 - 构建设置bld和bin目录中的文件只读吗?

时间:2014-11-13 17:27:52

标签: cordova visual-studio-2013 multi-device-hybrid-apps

我们刚刚在两台开发机器上更新了Visual Studio,从Update 3更新到Update 4,更新了Web Essentials和卸载的Hybrid Apps CTP2,并为Apache Cordova安装了新的CTP3 Visual Studio工具。

我们为任何项目构建时遇到问题。它将bld目录中的文件设置为只读。它还会将bin目录中的文件设置为只读。

这会在后续构建项目的尝试中产生错误。错误如下:

1>C:\Users\rlindabury\AppData\Roaming\npm\node_modules\vs-mda-targets\Microsoft.MDA.targets(221,5): warning MSB3061: Unable to delete file "E:\code\SwiftReach\V4\Swift911\Mobile\Swift911Public\\bld\Ripple\Android\Debug\scripts\images\icons-svg\video-white.svg". Access to the path 'E:\code\SwiftReach\V4\Swift911\Mobile\Swift911Public\bld\Ripple\Android\Debug\scripts\images\icons-svg\video-white.svg' is denied.

我们能够解决这个问题的唯一方法是删除project \ bld和project \ bin目录并构建或在每次构建之前通过在这些目录上递归更改只读标志。

这些是CTP2项目。我们创建了一个新的CTP3项目,并使用我们的代码填充它,它表现出同样的错误。

还有其他人遇到这种情况吗?有修复吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

我们无法重复此操作,但以下步骤可能有助于将CTP 2项目迁移到CTP 3. FAQ有迁移项目的步骤"我是尝试将项目从CTP2升级到CTP3及其抛出错误。"

供参考:

然后在编辑器中打开jsproj文件(右键单击并选择Edit myproject.jsproj)并修改以下行中的路径:

<Import Project="$(AppData)\npm\node_modules\vs-mda-targets\Microsoft.MDA.targets" /> 
<Import Project="$(AppData)\npm\node_modules\vs-mda-targets\Microsoft.TypeScript.MDA.targets" />

看起来像这样:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CordovaTools\vs-mda-targets\Microsoft.MDA.targets" /> 
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CordovaTools\vs-mda-targets\Microsoft.TypeScript.MDA.targets" />

答案 1 :(得分:1)

对于那些寻找这个问题答案的人,我们在Visual Studio Cordova常见问题解答中找到了解决方案,您可以在以下网址找到:

http://www.visualstudio.com/explore/cordova-faq-vs

即使错误不完全相同,解决方法也是如此。以下是相关部分:

如果此操作失败,并显示类似于以下错误消息:

The imported project "C:\Users\testuser\AppData\Roaming\npm\node_modules\vs-mda-targets\Microsoft.MDA.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

然后在编辑器中打开jsproj文件(右键单击并选择Edit myproject.jsproj)并修改以下行中的路径:

<Import Project="$(AppData)\npm\node_modules\vs-mda-targets\Microsoft.MDA.targets" /> 
<Import Project="$(AppData)\npm\node_modules\vs-mda-targets\Microsoft.TypeScript.MDA.targets" />

看起来像这样:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CordovaTools\vs-mda-targets\Microsoft.MDA.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CordovaTools\vs-mda-targets\Microsoft.TypeScript.MDA.targets" />