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



当我尝试创建一个新项目时,我得到下面的错误。我已经升级到CTP2了。错误:

The expression """.Substring(0, 6)" cannot be evaluated. Index and length must refer to a location within the string. Paramter name: length C:USERSMEAppDataRoamingnpmnode_modulesvs-mda-targetsMicrosoft.MDA.targets

当出现此错误时,我检查解决方案文件夹,没有创建项目。

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

检查是否删除了
下的vs-mda和vs-mda-targets文件夹C:UsersYOUR-USER-NAMEAppDataRoamingnpmnode_modules
如果没有,您可以手动删除这些文件夹。

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

如果你在项目创建时得到一个错误,说没有找到MDA目标,你可以手动安装'vs-mda' &'vs-mda-targets'从Visual Studio的Extension文件夹下找到,让事情再次工作。

退出Visual Studio并在安装Visual Studio的驱动器上导航到
%Program Files%Microsoft Visual Studio 12.0Common7IDEExtensionsuxbwjkun.gjn*packages
在这里你会发现两个文件夹"vs-mda"one_answers"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项目。

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

创建一个.cmd文件,内容如下:

@echo off
setlocal ENABLEEXTENSIONS
echo -- Searching for MultiDeviceHybridApp Visual Studio Extension --
set KEY_NAME=HKEY_USERS.DEFAULTSoftwareMicrosoftVisualStudio12.0ExtensionManagerEnabledExtensions
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包!

p。显然,你需要npm作为系统路径的一部分。

相关内容

最新更新