无法创建新项目(VS2013和多混合设备应用程序)

时间:2014-08-25 00:41:00

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

当我尝试创建一个新项目时,我收到以下错误。我已升级到CTP2。 错误:

The expression """.Substring(0, 6)" cannot be evaluated. Index and length must refer to a location within the string. Paramter name: length C:\USERS\ME\AppData\Roaming\npm\node_modules\vs-mda-targets\Microsoft.MDA.targets

发生此错误并检查解决方案文件夹时,未创建任何项目。

2 个答案:

答案 0 :(得分:10)

在VS关闭的情况下,在命令窗口中运行
npm -g uninstall vs-mdanpm -g uninstall vs-mda-targets

检查是否删除了
下的vs-mda和vs-mda-targets文件夹 C:\Users\YOUR-USER-NAME\AppData\Roaming\npm\node_modules\
如果没有,您可以手动删除这些文件夹。

然后重新启动VS并创建一个MDHA项目。它应该成功。

如果您在项目创建时收到错误,指出未找到MDA目标,则可以手动安装' vs-mda' &安培; ' VS-MDA-目标'从Visual Studio的Extension文件夹下,让事情重新开始。

退出Visual Studio并在安装Visual Studio的驱动器上,导航到
%Program Files%\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\uxbwjkun.gjn*\packages
在这里你会找到两个文件夹" vs-mda"和" vs-mda-targets"

  • 请注意,uxbwjkun.gjn不是确切的文件夹名称,但要查找包含packages文件夹的内容。

现在从这里开始npm -g install <full path to current folder>\vs-mdanpm -g install <full path to current folder>\vs-mda-targets

发出此命令时,必须在%Program Files%的VS安装下为其提供vs-mda和vs-mda-targets文件夹的显式路径。

重新启动并创建一个新的MDHA项目。

答案 1 :(得分:5)

我们的团队中有不少开发者必须解决这个问题,所以我在升级到CTP3之后创建了一个脚本来为他们​​解决这个问题。 它基本上是Ellen的解决方案所做的,但它通过查找VS扩展路径的注册表项自动完成:)

使用以下内容创建.cmd文件:

@echo off
setlocal ENABLEEXTENSIONS
echo -- Searching for MultiDeviceHybridApp Visual Studio Extension --
set KEY_NAME=HKEY_USERS\.DEFAULT\Software\Microsoft\VisualStudio\12.0\ExtensionManager\EnabledExtensions
set SEARCH_VALUE=MultiDeviceHybridApp
set REG_QUERY_CMD=reg query "%KEY_NAME%" /f "%SEARCH_VALUE%"
for /f "tokens=2*" %%a in ('%REG_QUERY_CMD% 2^>^&1^|find "REG_"') do @set RESULT_REG_VALUE=%%b
goto find_result_%ERRORLEVEL%
:find_result_0
echo Found here: %RESULT_REG_VALUE%
set PACKAGES_PATH=%RESULT_REG_VALUE%\packages
echo Installing vs mda packages....
echo.
set CMD=npm -g uninstall "%PACKAGES_PATH%\vs-mda-targets"
echo Running: %CMD%
call %CMD%
echo.
set CMD=npm -g uninstall "%PACKAGES_PATH%\vs-mda"
echo Running: %CMD%
call %CMD%
echo.
set CMD=npm -g install "%PACKAGES_PATH%\vs-mda"
echo Running: %CMD%
call %CMD%
echo.
set CMD=npm -g install "%PACKAGES_PATH%\vs-mda-targets"
echo Running: %CMD%
call %CMD%
echo.
echo Done!
goto end
:find_result_1
echo *** Could not find MultiDeviceHybridApp Visual Studio Extension path ***
:end
pause

运行此文件,它应该正确卸载并重新安装npm软件包!

PS。您显然需要npm作为系统路径的一部分。