В командной строке VS2010 выдается ошибка: не удается определить местоположение папки VS Common Tools - PullRequest
66 голосов
/ 11 августа 2010

Я установил VS2010.При установке создается ярлык для командной строки VS2010, но при открытии командной строки появляется сообщение об ошибке:

Невозможно определить местоположение папки VS Common Tools.

Я проверил переменную среды VS100COMNTOOLS, и она имеет значение: C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\, а для реестра HKEY_local_Machine\Software\Microsoft\Visual Studio\SxS\VS7 установлено значение: C:\Program Files\Microsoft Visual Studio 10.0\.

Я проверил VSvars32.bat и попытался добавить echo, чтобы найтигде это продолжается.Сбой по этой команде:

@call :GetVSCommonToolsDirHelper32 HKLM > nul 2>&1

Ответы [ 23 ]

1 голос
/ 20 декабря 2011

Направьте пути в правильные места на вашем компьютере.В этой настройке предполагается, что большинство программ установлено в одном месте (C: \ Development).Для моего использования я не исключил необходимость в DEV.

@ECHO OFF

set DEV=C:\Development
set QTDIR=%DEV%\Qt
set PATH=%SystemRoot%;%SystemRoot%\system32;%QTDIR%\bin

echo Setting OpenSSL Env.
set OPENSSL=%DEV%\OpenSSL
set PATH=%OPENSSL%\bin;%PATH%
set LIB=%OPENSSL%\lib
set INCLUDE=%OPENSSL%\include

echo Setting NASM Env.
set PATH=%DEV%\NASM;%PATH%

echo Setting DirectX Env.
set LIB=%DEV%\DirectX SDK\Lib\x86;%LIB%
set INCLUDE=%DEV%\DirectX SDK\Include;%INCLUDE%

echo Setting Windows SDK Env.
set WindowsSdkDir=%DEV%\Windows 7.1 SDK
set PATH=%WindowsSdkDir%\Bin;%PATH%
set LIB=%WindowsSdkDir%\Lib;%LIB%
set INCLUDE=%WindowsSdkDir%\Include;%INCLUDE%
set TARGET_CPU=x86

echo Setting MSVC2010 Env.
set VSINSTALLDIR=%DEV%\MSVC
set VCINSTALLDIR=%DEV%\MSVC\VC
set DevEnvDir=%VSINSTALLDIR%\Common7\IDE
set PATH=%VCINSTALLDIR%\bin;%VSINSTALLDIR%\Common7\Tools;%VSINSTALLDIR%\Common7\IDE;%VCINSTALLDIR%\VCPackages;%PATH%
set INCLUDE=%VCINSTALLDIR%\include;%INCLUDE%
set LIB=%VCINSTALLDIR%\lib;%LIB%
set LIBPATH=%VCINSTALLDIR%\lib

echo Setting Framework Env.
set FrameworkVersion=v4.0.30319
set Framework35Version=v3.5
set FrameworkDir=%SystemRoot%\Microsoft.NET\Framework
set LIBPATH=%FrameworkDir%\%FrameworkVersion%;%FrameworkDir%\%Framework35Version%;%LIBPATH%
set PATH=%LIBPATH%;%PATH%

echo Setting Perl Env.
set PATH = C:\Perl\bin;%PATH%

echo Env. ready.

title Qt Framework 4.8.0 Development Kit.

cd %DEV%

Сохранить файл как * .bat

, запустить командную строку Visual Studio и выполнить * .bat.

Это должно исправить все проблемы с окружающей средой, поэтому запустите configure

EDIT Почти забыл Кредит, где кредит должен: http://developer.qt.nokia.com/wiki/Building_Qt_Desktop_for_Windows_with_MSVC

0 голосов
/ 24 июня 2016

Другой причиной может быть VS 2013 Community Update 5, устанавливающий НЕПРАВИЛЬНЫЕ ШОРТУТЫ;он устанавливает ярлыки VS 2012 для VS 2013.

Чтобы исправить это, отредактируйте ярлыки.Переименуйте их в период с 2012 по 2013 год и измените «11» на «12» в пути к vcvarsall.

См. этот пост в социальной сети Microsoft .

0 голосов
/ 22 июня 2016

В моем случае я бы установил VS.Net 2015 update 2 и оставил флажок Windows 8.1 SDK не отмеченным (поскольку я сейчас использую Windows 10 и не считаю это необходимым). Однако это, похоже, привело к тому, что некоторые обязательные параметры реестра были опущены.

Выполнение модификации VS.Net 2015 с панели управления и установка флажка 8.1 SDK устранили проблему.

0 голосов
/ 06 июля 2015

Ничто из перечисленного не решило мою проблему.

Я добавил «C: / Windows / System32» в переменную окружения «Path» или «PATH». Я мог бы использовать команду reg /?. Я также запустил файл vcvarsall.bat без сообщения об ошибке.

Моя ошибка в том, что я запускаю Командная строка Cross Tools VS2012 вместо Командная строка Cross Tools VS2013

Причиной является структура файла в меню «Пуск». 2010 и 2012 годы - «Microsoft Visual Studio ГОД », а 2013 год - «Visual Studio ГОД ». Я просто не осознавал этого. : /

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 13 мая 2014

Так что это, вероятно, вааааааа поздно для вечеринки, но настоящая проблема - ошибка или, скорее, повторение одной и той же ошибки в трех пакетных файлах.

C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ Tools \ VCVarsQueryRegistry.bat

C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ Tools \ vsvars32.bat

C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ vcvars32.bat

Шаблон ошибки везде, где цикл for используется для циклического перебора значений реестра. Это выглядит так:

@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "10.0"') DO (
    @if "%%i"=="10.0" (
        @SET "VS100COMNTOOLS=%%k"
    )
)

Проблема заключается во втором появлении %% i. То, как работает конструкция цикла, это первая переменная %%, это первый токен, следующий - второй, и так далее. Таким образом, второй %% i должен быть %% j (или что угодно), чтобы он указывал на значение, которое могло бы быть «10.0». Вы можете сказать, что разработчик хотел использовать i, j, k в качестве значений, потому что во вложенном @SET в if они используют %% k. Какой будет путь.

Итак, вкратце, пройдите все эти типы циклов в трех файлах выше и измените второе вхождение %% i на %% k, и все будет работать так, как должно. Так должно выглядеть так:

@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "10.0"') DO (
    @if "%%j"=="10.0" (
        @SET "VS100COMNTOOLS=%%k"
    )
)

Надеюсь, это поможет. Не уверен, относится ли это ко всем версиям. Я только знаю, что это относится к VS 2010 (SP1).

0 голосов
/ 01 мая 2014

Я столкнулся с этой же проблемой при сборке в нашей системе сборки Windows 7. Я подменял отсутствие нашего инженера по сборке, и это был первый раз, когда мы перешли с Windows XP на Windows 7 32-bit. Требования к ИТ для нашей системы сборки позволили заблокировать разрешения там, где очень трудно выполнять самые рутинные операции. Как выяснилось, проблема была связана с отсутствием повышенных привилегий. После закрытия Visual Studio 2010 и повторного открытия его с правами администратора (Запуск от имени администратора) проблема была исправлена.

0 голосов
/ 25 января 2011

Я получал ту же ошибку при попытке запустить процесс публикации через powershell на моей сборочной машине.

На моей сборочной машине установлен только Windows SDK, а не Visual Studio, и поэтому мне кажется, что мне не хватает некоторых общих файлов и значений реестра, которые обычно присутствуют при установке Visual Studio.После более тщательного изучения файла vsvars32.bat я заметил, что именно здесь сообщается об ошибке «Не удается определить местоположение папки VS Common Tools», расположенной под меткой GetVSCommonToolsDir.Похоже, что в этом пакетном файле, поскольку на моем компьютере не существует подраздела VS7, он очищает переменную среды% VS100COMNTOOLS% и сообщает об указанной ошибке.

В моем случае кажется, что эта ошибка происходит для меня, потому что у меня не установлен Visual Studio или некоторые другие необходимые компоненты на моем компьютере сборки, и, следовательно, раздел реестра не существует.Возможно, ваша ошибка связана с чем-то похожим, например, с 32-битным или 64-битным реестром или с 32-битной или 64-битной командной строкой VS?Тестирование строки кода, которая не выполняется в пакете непосредственно в командной строке, должно дать вам представление о том, почему путь к реестру или файлу не разрешен должным образом.

0 голосов
/ 21 сентября 2016

У меня была такая же проблема с Visual Studio 2010 в Windows XP.Просто удалите все конструкции:

> nul 2>&1

из файлов:

\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat
\Microsoft Visual Studio 10.0\Common7\Tools\VCVarsQueryRegistry.bat
0 голосов
/ 16 мая 2013

У меня чудовищный зверь, работающий только с командным файлом Microsoft Windows SDK v7.1 SetEnv.Cmd - т.е. специально подготовленные подсказки cmd (где vsvars32.bat и др. разводят свои уродливые головы). Я просто установил Microsoft Windows SDK для Windows 7 (7.1) со своими компиляторами C / C ++. На моем компьютере Xp64 это последовательность, которую я использовал для компиляции одного из сэмплов DirectX SDK Audio в июне 2010 года:

REM open a regular old cmd.exe and run these 3
REM this builds the Win32 (ie: x86) version of the exe

cd "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Samples\C++\XACT\Tutorials\Tut02_Stream"

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /debug /x86 /xp

"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" Tut02_Stream_2010.sln /p:Configuration=Debug /p:Platform=Win32

Обратите внимание, что использование версии MSBuild.exe для Framework64 не позволяет мне собрать версию X64 (из-за целей?), Но версия MSBuild для X86 успешно создала версию того же учебника exe из X64:

REM open a regular old cmd.exe and run these 3
REM this builds the X64 version of the exe

cd "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Samples\C++\XACT\Tutorials\Tut02_Stream"

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /debug /x64 /2003

"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" Tut02_Stream_2010.sln /p:Configuration=Debug /p:Platform=X64
0 голосов
/ 11 апреля 2013

Для меня это вызвано тем, что для переменной окружения PATH установлено пустое значение для моего профиля пользователя . Системная переменная была установлена ​​правильно, поэтому я удалил пустую переменную PATH из своего профиля, и все снова заработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...