ошибка MSB6006: & ldquo; cmd.exe & rdquo; с кодом 9009. C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120 \ Microsoft.CppCommon.targets [duplicate]

Прежде чем перевести пароль, вы должны нормализовать его, как описано в разделе раздела 4 документа RFC 7613 . В частности:

  1. Дополнительное правило сопоставления: любые экземпляры пространства без ASCII ДОЛЖНЫ отображаться в пространстве ASCII (U + 0020); пространство без ASCII представляет собой любую кодовую точку Юникода, имеющую общую категорию Unicode «Zs» (за исключением U + 0020).
blockquote>

и:

  1. Правило нормализации: Форма нормализации Unicode C (NFC) ДОЛЖНА применяться ко всем символам.
blockquote>

Это пытается гарантировать, что если пользователь вводит тот же пароль, но с использованием другого метода ввода, пароль все равно должен быть принят.

239
задан Anthony Mastrean 15 March 2012 в 17:04
поделиться

29 ответов

Еще один вариант файла не найден, из-за пробелов в пути. В моем случае в скрипте msbuild. Мне нужно было использовать стиль HTML & ampquot; строки в команде exec.

<!-- Needs quotes example with my Buildscript.msbuild file --> 
<Exec Command="&quot;$(MSBuildThisFileDirectory)\wix\wixscript.bat&quot; $(VersionNumber) $(VersionNumberShort)" 
    ContinueOnError="false" 
    IgnoreExitCode="false" 
    WorkingDirectory="$(MSBuildProjectDirectory)\wix" />
2
ответ дан Ben Butzer 21 August 2018 в 05:35
поделиться

На самом деле я заметил, что по какой-то причине переменная среды% windir% иногда стирается. То, что сработало для меня, было изменено на переменную среды windir на c: \ windows, перезапустить VS, и все. Таким образом, вы не можете изменять файлы решений.

0
ответ дан Charles F 21 August 2018 в 05:35
поделиться

Код ошибки 9009 означает, что файл ошибки не найден. Все основные причины, изложенные в ответах здесь, являются хорошим источником, чтобы понять, почему, но сама ошибка просто означает плохой путь.

76
ответ дан Chris Moschini 21 August 2018 в 05:35
поделиться
  • 1
    Моя проблема с файлом не найдена, ссылка в файле csproj была $ (PROGRAMFILES) \ Microsoft SDKs \ TypeScript \ tsc и должна была быть $ (PROGRAMFILES) \ Microsoft SDKs \ TypeScript \ 1.0 \ tsc – RHAD 10 July 2014 в 09:41
  • 2
    Всегда полезно ответить на поставленный вопрос. – gdbj 19 September 2017 в 14:45
  • 3
    Спасибо, что ответили на первый вопрос. – AntonK 24 January 2018 в 01:00

Скорее всего, у вас есть место в результирующем пути.

Вы можете обойти это, указав пути, тем самым позволяя пробелы. Например:

xcopy "$(SolutionDir)\Folder Name\File To Copy.ext" "$(TargetDir)" /R /Y /I
50
ответ дан Cody Gray 21 August 2018 в 05:35
поделиться
  • 1
    +1 - Это именно та проблема, с которой я столкнулся. Команда в моей пост-сборке работала, когда я строил проект локально, но не удалось, когда он был построен на сервере сборки. Я просто поместил команду между двойными кавычками, чтобы исправить ее. Благодарю. – sheikhjabootie 29 September 2011 в 04:14
  • 2
    Настолько разумно предположить, что ошибка 9009 «файл не найден» ...? Лично я думаю, что вопрос "что такое ошибка MSBuild 9009? & Quot; должно быть прекрасно, как отдельный вопрос, но направленный Microsoft! – The Dag 1 July 2013 в 15:48

Другой вариант:

сегодня я вызываю интерпретатор python из cron в win32 и беру ExitCode (% ERRORLEVEL%) 9009, потому что системная учетная запись, используемая cron, не имеет пути к каталогу Python.

4
ответ дан Denis Barmenkov 21 August 2018 в 05:35
поделиться

Я думаю, что в моем случае были русские символы в пути (все проекты были в папке пользователя). Когда я помещал решение в другую папку (прямо на диск), все стало нормально.

0
ответ дан Dmitriy Dokshin 21 August 2018 в 05:35
поделиться

Для меня дисковое пространство было низким, и ожидается, что файлы, которые не могут быть записаны, будут представлены позже. В других ответах упоминались недостающие файлы (или неверно названные / неправильно записанные файлы), но основной причиной было отсутствие дискового пространства.

2
ответ дан ErikE 21 August 2018 в 05:35
поделиться

Я вызвал эту ошибку, когда я отредактировал переменную окружения Path. После редактирования я случайно добавил Path= в начало строки пути. С такой неправильной переменной пути мне не удалось запустить XCopy в командной строке (никакая команда или файл не найдена), а Visual Studio отказалась выполнить шаг после сборки, указав ошибку с кодом 9009.

XCopy обычно находится в C: \ Windows \ System32. Как только переменная окружения Path разрешила XCopy разрешиться в приглашении DOS, Visual Studio хорошо построила мое решение.

6
ответ дан GregC 21 August 2018 в 05:35
поделиться

Если скрипт действительно делает то, что ему нужно сделать, и это просто Visual Studio, вызывающий вас об ошибке, которую вы могли бы просто добавить:

exit 0

до конца вашего скрипта.

6
ответ дан hakksor 21 August 2018 в 05:35
поделиться
  • 1
    скрыть любую потенциальную ошибку не должно быть – igelineau 9 January 2017 в 18:05
  • 2
    Я согласен, что это не должно быть замаскировано – AltF4_ 11 April 2017 в 14:13

Это происходит, когда вам не хватает некоторых параметров среды для использования инструментов Microsoft Visual Studio 2010 x86. Поэтому попробуйте добавить в качестве первой команды следующие шаги после сборки:

call "$(DevEnvDir)..\Tools\vsvars32.bat"

Он должен быть помещен перед любой другой командой. Он установит среду для использования инструментов Microsoft Visual Studio 2010 x86.

78
ответ дан HRKoder 21 August 2018 в 05:35
поделиться
  • 1
    Что это ... Это действительно помогло! Спасибо чувак! +1 – Marcel 20 April 2012 в 13:57
  • 2
    Не могли бы вы мне помочь - где и в какой файл мне нужно добавить строку call "$(DevEnvDir)..\Tools\vsvars32.bat"? благодаря – surfmuggle 16 October 2012 в 20:40
  • 3
    Мне пришлось добавить запись в мою переменную среды Path. Для получения дополнительной информации просмотрите окно вывода. – paqogomez 6 December 2013 в 07:19
  • 4
    Внимание. Это не удастся на многих серверах сборки: blogs.clariusconsulting.net/kzu/devenvdir-considered-harmful – George Mauer 24 September 2014 в 20:36
  • 5
    Спасибо, для x64-битной инструментальной цепочки, которую я решил так: «$ (DevEnvDir) .. \ VC \ vcvarsall.bat & quot; – codekiddy 26 January 2015 в 22:59

По крайней мере, в Visual Studio Ultimate 2013, версии 12.0.30723.00 Update 3, невозможно разделить оператор if / else с разрывом строки:

работает:

if '$(BuildingInsideVisualStudio)' == 'true' (echo local) else (echo server)

не работает:

if '$(BuildingInsideVisualStudio)' == 'true' (echo local) 
else (echo server)
0
ответ дан it-freelancer-magazin.de 21 August 2018 в 05:35
поделиться

Вы пытались дать полный путь к команде, которая запущена в команде pre-or post-build event?

Я получал ошибку 9009 из-за xcopy пост-сборки event в Visual Studio 2008.

Команда "xcopy.exe /Y C:\projectpath\project.config C:\compilepath\" вышла с кодом 9009.

Но в моем случае это было также прерывистым. То есть сообщение об ошибке сохраняется до перезагрузки компьютера и исчезает после перезагрузки компьютера. Он вернулся после некоторой проблемы, связанной с удаленностью, которую я еще не обнаружил.

Однако в моем случае предоставление команды с полным пути разрешило проблему:

c:\windows\system32\xcopy.exe /Y C:\projectpath\project.config C:\compilepath\ 

Вместо того, чтобы просто :

xcopy.exe /Y C:\projectpath\project.config C:\compilepath\

Если у меня нет полного пути, он запускается некоторое время после перезапуска, а затем останавливается.

Также, как упоминалось в комментариях к этому сообщению, если есть пробелы в полном пути, тогда для этой цели нужны кавычки. Например.

"C:\The folder with spaces\ABCDEF\xcopy.exe" /Y C:\projectpath\project.config C:\compilepath\

Обратите внимание, что этот пример в отношении пробелов не проверен.

213
ответ дан Jeroen 21 August 2018 в 05:35
поделиться
  • 1
    Я также получил ошибку 9009 в сообщениях post и pre build. Проверка закладки вывода в Visual Studio показывает проблему. В моем случае я пытался получить доступ к пути, содержащему пробел – Phil Hale 2 May 2011 в 16:04
  • 2
    У меня была аналогичная проблема, но это было результатом пробелов в именах папок. Помещение путей в кавычки ("$(SolutionDir)packages\NUnit.2.5.10.11092\tools\"nunit-console "$(TargetPath)") разрешило это. – Justin Morgan 18 November 2011 в 21:50
  • 3
    Я столкнулся с аналогичной проблемой с событием pre-build, которое использовало апплет Java для предварительной компиляции JS и CSS ... оказалось, что мы пренебрегли тем, что Java Runtime на сервере. – saluce 11 May 2012 в 20:29
  • 4
    Возможно ли, что переменная среды PATH потеряется как-то? Я получаю эту ошибку время от времени. У меня есть npm install setup как событие предварительной сборки, и изначально он работает (поэтому я предполагаю, что все настроено), но затем случайным образом он перестанет работать в течение дня (обычно при переключении между решениями / ветвями, которые, как я полагаю), и это больше не будет знать о npm. Перезапуск VS 'исправляет' это ... то есть мой PATH настроен правильно, но, похоже, встает VS. Если бы можно было просмотреть переменные env изнутри VS, я мог бы подтвердить это. – jamiebarrow 7 October 2014 в 10:32
  • 5
    Если вы хотите защитить свою сборку от сбоев в разных средах, скажем, окон, установленных на D: \, используйте среду vars в сочетании с ответом @thehhv: %systemroot%\System32\xcopy ... – Dorival 10 July 2015 в 21:29

Кроме того, убедитесь, что в окне редактирования событий post build в вашем проекте нет разрывов строк. Иногда копирование команды xcopy из сети, когда она многострочная и вставляет ее в VS, вызовет проблему.

3
ответ дан jesse p 21 August 2018 в 05:35
поделиться
  • 1
    Хотя Джесси делает хороший вывод о том, что в середине команды xcopy нет разрывов строк, обратите внимание, что в общем случае допустимо иметь разрывы строк в этом поле; каждая строка должна интерпретироваться как ее собственная команда. – RJFalconer 15 January 2013 в 19:12

Мое решение состояло в том, чтобы создать копию файла и добавить шаг к задаче построения, чтобы скопировать мой файл поверх оригинала.

0
ответ дан johnrizzo1 21 August 2018 в 05:35
поделиться

Мое решение было просто: как вы пытались отключить его и снова? Поэтому я перезапустил компьютер, и проблема исчезла.

0
ответ дан krzyszt0fd 21 August 2018 в 05:35
поделиться

Проверьте орфографию. Я пытался вызвать исполняемый файл, но имел имя с ошибкой и дал мне сообщение exited with code 9009.

5
ответ дан Mark 21 August 2018 в 05:35
поделиться
  • 1
    Для этого добавьте проверку на наличие исполняемого файла в вашей системе вообще. – Joshua Drake 5 December 2013 в 17:42

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

Чтобы открыть окно вывода в Visual Studio:

  1. Ctrl + Alt + O
  2. Вид> Выход

0
ответ дан Marvin Glenn Lacuna 21 August 2018 в 05:35
поделиться

В моем случае перед вызовом команды мне пришлось сначала «CD» («Изменить каталог») в соответствующий каталог, так как исполняемый файл, который я вызывал, был в моей директории проекта.

Пример:

cd "$(SolutionDir)"
call "$(SolutionDir)build.bat"
4
ответ дан Mathias Lykkegaard Lorenzen 21 August 2018 в 05:35
поделиться
  • 1
    Это устранило проблему, когда я запускаю Visual Studio devenv.exe, но вам не нужно указывать папку во второй раз, просто вызовите build.bat. – FrinkTheBrave 6 May 2017 в 07:44

Для меня это произошло после обновления пакетов nuget от одной версии PostSharp до следующего в большом решении (проект ~ 80). У меня есть ошибки компилятора для проектов, которые имеют команды в событиях PreBuild.

'cmd' не распознается как внутренняя или внешняя команда, операционная программа или командный файл. C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets (1249,5): ошибка MSB3073: команда "cmd / c C: \ GitRepos \ main \ ServiceInterfaces \ DEV.Config \ PreBuild.cmd ServiceInterfaces "вышла с кодом 9009.

Изменена переменная PATH, слишком длинная с несколькими повторяющимися путями, связанными с PostSharp.Patterns.Diagnostics. Когда я закрыл Visual Studio и снова открыл его, проблема была исправлена.

1
ответ дан Michael Freidgeim 21 August 2018 в 05:35
поделиться

Это довольно просто, у меня была эта проблема, и смущающая простая ошибка.

Приложение использует аргументы командной строки, я удалил их, а затем добавил их обратно. Неожиданно проект не удалось создать.

Visual Studio -> Свойства проекта -> убедитесь, что вы используете вкладку «Отладка» (не вкладка «Build Events») -> Аргументы командной строки

Я использовал текстовую область Post и Pre-build, которая была неправильной в этом случае.

1
ответ дан Niike2 21 August 2018 в 05:35
поделиться

Еще одна причина: если ваше событие pre-build ссылается на другой путь к bin-файлам, и вы видите эту ошибку при запуске msbuild, но не Visual Studio, тогда вам нужно вручную организовать проекты в файле * .sln (с текстом редактор), чтобы проект, на который вы нацеливаетесь в событии, строится до проекта события. Другими словами, msbuild использует порядок, в котором проекты перечислены в файле * .sln, тогда как VS использует знания зависимостей проекта. Это произошло, когда инструмент, который создает базу данных для включения в wixproj, был указан после wixproj.

0
ответ дан Novaterata 21 August 2018 в 05:35
поделиться

Проблема в моем случае возникла, когда я попытался использовать команду в командной строке для события Post-build в моей тестовой библиотеке классов. Когда вы используете кавычки следующим образом:

"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit" "$(TargetPath)" 

или если вы используете консоль:

"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit-console" "$(TargetPath)"

Это исправило проблему для меня.

4
ответ дан perlyking 21 August 2018 в 05:35
поделиться

Я добавил «> myFile.txt» в конец строки на этапе предварительной сборки, а затем проверил файл на фактическую ошибку.

3
ответ дан Philip 21 August 2018 в 05:35
поделиться

Ответ tfa был опущен, но на самом деле может вызвать эту проблему. Благодаря hanzolo я посмотрел в окне вывода и нашел следующее:

3>'gulp' is not recognized as an internal or external command,
3>operable program or batch file.
3>D:\dev\<filepath>\Web.csproj(4,5): error MSB3073: The command "gulp clean" exited with code 9009.

После запуска npm install -g gulp я прекратил эту ошибку. Если вы получаете эту ошибку в Visual Studio, проверьте окно вывода и посмотрите, является ли проблема неуправляемой переменной среды.

1
ответ дан R. Salisbury 21 August 2018 в 05:35
поделиться

Имела ту же переменную после изменения переменной PATH из переменных окружения в Win 7. Возвращение к умолчанию помогло.

11
ответ дан Radomir Szewczyk 21 August 2018 в 05:35
поделиться

Моя точная ошибка была

The command "iscc /DConfigurationName=Debug "C:\Projects\Blahblahblah\setup.iss"" exited with code 9009.

9009 означает, что файл не найден, но на самом деле он не смог найти часть «iscc» команды.

Я исправил его, добавив ";C:\Program Files\Inno Setup 5 (x86)\" в переменную системной среды "path"

5
ответ дан scw 21 August 2018 в 05:35
поделиться

У меня была ошибка 9009, когда скрипт события post post пытался запустить пакетный файл, который не существовал в указанном пути.

9
ответ дан SleepyBoBos 21 August 2018 в 05:35
поделиться

Вам нужно убедиться, что вы установили grunt по всему миру

0
ответ дан tfa 21 August 2018 в 05:35
поделиться

Я также столкнулся с этой проблемой 9009, столкнувшись с ситуацией перезаписи.

В принципе, если файл уже существует и вы не указали переключатель /y (который автоматически перезаписывается), эта ошибка может произойти при запуске из сборки.

0
ответ дан Travis Vroman 21 August 2018 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: