Что означает «выход с кодом 9009» во время этой сборки?

StackOverflow https://stackoverflow.com/questions/1351830

  •  20-09-2019
  •  | 
  •  

Вопрос

Что означает это сообщение об ошибке?Что я могу сделать, чтобы исправить эту проблему?

Файл AssemblyInfo.cs завершился с кодом 9009.


Проблема, вероятно, возникает на этапе после сборки решения .NET в Visual Studio.

Нет правильного решения

Другие советы

Вы пытались дать полный путь команды, которая работает в команде событий до или пост-сборки?

Я получил ошибку 9009 из -за xcopy Команда событий после сборки в 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\

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

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

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

Для Visual Studio 2010 Использование:

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

Как упоминалось @floriankoch в комментариях, для использования VS 2017:

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

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

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

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

xcopy "$(SolutionDir)\Folder Name\File To Copy.ext" "$(TargetDir)" /R /Y /I

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

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

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

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

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

exit 0

К концу сценария.

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

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

Пример:

cd "$(SolutionDir)"
call "$(SolutionDir)build.bat"

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

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

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

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

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

Сегодня я называю Python Interpreter из Cron в Win32 и беру Exitcode (%errorlevel%) 9009, потому что системная учетная запись, используемая Cron, не имеет пути к каталогу Python.

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

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

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

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

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

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

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

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

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, проверьте окно вывода и посмотрите, является ли проблема нередовой переменной среды.

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

Еще один вариант файла не найден из -за пробелов на пути. В моем случае в сценарии MSBuild. Мне нужно было использовать стиль HTML " Строки в команде 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" />

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

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

  1. Ctrl+alt+o
  2. Просмотр> Вывод

enter image description here

Я исправил это, просто перезапустив Visual Studio - я только что запустил dotnet tool install xxx В консольном окне и VS еще не подобрал новые переменные среды и/или настройки пути, которые были изменены, поэтому быстрый перезапуск исправил проблему.

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

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

Visual Studio -> Project Properties -> Убедитесь, что вы используете вкладку «Debug» (Not 'Build Events' Tab) -> Аргументы командной строки

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

Для меня это произошло после обновления пакетов 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.

Переменная пути была повреждена, становясь слишком длинной с множественными повторяющимися путями, связанными с Postsharp.patterns.diagnostics. Когда я закрыл Visual Studio и открыл ее снова, проблема была исправлена.

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

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

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

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

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

работает:

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

не работает:

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

Еще одна причина: если ваше событие предварительной сборки ссылается на другой путь Bin Projects, и вы видите эту ошибку при запуске MSBuild, но не Visual Studio, то вам придется вручную организовать проекты в файле *.SLN (с текстовым редактором), так что То, что проект, который вы нацелитесь на мероприятие, создан до проекта мероприятия. Другими словами, MSBuild использует порядок, который проекты перечислены в файле *.SLN, тогда как VS использует знание зависимости проекта. У меня было это, когда инструмент, который создает базу данных, которая будет включена в WixProj, был перечислен после WixProj.

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

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

You need to make sure you have installed grunt globally

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top