1

尝试创建新项目时出现以下错误。我已经升级到 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

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

4

2 回答 2

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-mda 运行 npm -g install <full path to current folder>\vs-mda-targets

发出此命令时,有必要在 %Program Files% 中指定 VS 安装下的 vs-mda 和 vs-mda-targets 文件夹的显式路径。

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

于 2014-08-26T20:55:24.160 回答
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 成为系统路径的一部分。

于 2014-12-01T11:41:13.873 回答