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

rit*_*der 1 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

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

Ell*_*len 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目标,则可以从Visual Studio的Extension文件夹中手动安装"vs-mda"和"vs-mda-targets"以使事情再次起作用.

退出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项目.


Mar*_*eld 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
Run Code Online (Sandbox Code Playgroud)

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

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