0

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

当我们为任何项目构建时,我们都会遇到问题。它将 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 项目并用我们的代码填充它,它表现出相同的错误。

还有其他人遇到这种情况吗?有解决办法吗?

谢谢你。

4

2 回答 2

2

我们无法重现这一点,但以下步骤可能有助于将 CTP 2 项目迁移到 CTP 3。常见问题解答包含迁移项目的步骤“我正在尝试将项目从 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" />
于 2014-11-13T17:55:47.150 回答
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" />
于 2014-11-13T18:18:43.373 回答