Что означает "выходить с кодом 9009" во время этой сборки?
Что означает это сообщение об ошибке? Что я могу сделать, чтобы исправить эту проблему?
AssemblyInfo.cs вышел с кодом 9009
Проблема, вероятно, происходит как часть этапа после сборки в .NET-решении в Visual Studio.
Ответы
Ответ 1
Вы пытались указать полный путь к команде, которая выполняется в команде события pre-or post-build event?
Я получал ошибку 9009 из-за команды xcopy
post-build 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\
Обратите внимание, что этот пример в отношении пробелов не проверен.
Ответ 2
Код ошибки 9009 означает, что файл ошибки не найден. Все основные причины, изложенные в ответах здесь, являются хорошим источником, чтобы понять, почему, но сама ошибка просто означает плохой путь.
Ответ 3
Это происходит, когда вам не хватает некоторых параметров среды для использования инструментов Microsoft Visual Studio x86.
Поэтому попробуйте добавить в качестве первой команды на этапах после сборки:
Для Visual Studio 2010 используйте:
call "$(DevEnvDir)..\Tools\vsvars32.bat"
Как уже упоминалось в комментариях @FlorianKoch, для VS 2017 используйте:
call "$(DevEnvDir)..\Tools\VsDevCmd.bat"
Его следует поместить перед любой другой командой.
Он установит среду для использования инструментов Microsoft Visual Studio x86.
Ответ 4
Скорее всего, у вас есть место в результирующем пути.
Вы можете обойти это, указав пути, тем самым позволяя пробелы. Например:
xcopy "$(SolutionDir)\Folder Name\File To Copy.ext" "$(TargetDir)" /R /Y /I
Ответ 5
Имела ту же переменную после изменения переменной PATH из переменных окружения в Win 7. Возвращение к умолчанию помогло.
Ответ 6
У меня была ошибка 9009, когда событие post post script пыталось запустить пакетный файл, который не существовал в указанном пути.
Ответ 7
Я вызвал эту ошибку, когда я отредактировал переменную окружения Path. После редактирования я случайно добавил Path=
в начало строки пути. С такой измененной переменной пути мне не удалось запустить XCopy в командной строке (никакая команда или файл не найден), а Visual Studio отказалась запускать шаг после сборки, ссылаясь на ошибку с кодом 9009.
XCopy обычно находится в C:\Windows\System32. Как только переменная окружения Path разрешила XCopy получить разрешение в приглашении DOS, Visual Studio хорошо построила мое решение.
Ответ 8
Если script на самом деле делает то, что ему нужно сделать, и просто Visual Studio выдает вам сообщение об ошибке, которую вы могли бы просто добавить:
exit 0
до конца script.
Ответ 9
Проверьте орфографию. Я пытался вызвать исполняемый файл, но имел имя с ошибкой и дал мне сообщение exited with code 9009
.
Ответ 10
В моем случае перед вызовом команды мне пришлось сначала записать "CD" ( "Изменить каталог" ) в соответствующий каталог, поскольку исполняемый файл, который я вызывал, был в моей директории проектов.
Пример:
cd "$(SolutionDir)"
call "$(SolutionDir)build.bat"
Ответ 11
Моя точная ошибка была
The command "iscc /DConfigurationName=Debug "C:\Projects\Blahblahblah\setup.iss"" exited with code 9009.
9009 означает, что файл не найден, но на самом деле он не смог найти часть "iscc" команды.
Я исправил его, добавив ";C:\Program Files\Inno Setup 5 (x86)\"
в переменную системной среды "path"
Ответ 12
Другой вариант:
Сегодня я вызываю интерпретатор python из cron в win32 и беру ExitCode (% ERRORLEVEL%) 9009, потому что системная учетная запись, используемая cron, не имеет пути к каталогу Python.
Ответ 13
Проблема в моем случае возникла, когда я попытался использовать команду в командной строке для события Post-build в моей тестовой библиотеке классов. Когда вы используете такие кавычки:
"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit" "$(TargetPath)"
или если вы используете консоль:
"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit-console" "$(TargetPath)"
Это исправило проблему для меня.
Ответ 14
Кроме того, убедитесь, что в окне редактирования событий post build в вашем проекте нет разрывов строк. Иногда копирование команды xcopy из сети, когда она многострочная и вставляет ее в VS, вызовет проблему.
Ответ 15
Я добавил " > myFile.txt" в конец строки на этапе предварительной сборки, а затем проверил файл на фактическую ошибку.
Ответ 16
Тфа ответ был отклонен, но на самом деле может вызвать эту проблему. Благодаря 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, проверьте окно вывода и посмотрите, является ли проблема неустановленной переменной среды.
Ответ 17
Для меня дисковое пространство было низким, и ожидается, что файлы, которые не могут быть записаны, будут представлены позже. В других ответах упоминались недостающие файлы (или неправильно названные/неправильные ссылки на файлы), но основной причиной было отсутствие дискового пространства.
Ответ 18
Еще один вариант файла не найден, из-за пробелов в пути. В моем случае в msbuild script. Мне нужно было использовать строки HTML и ampquot; в команде exec.
<!-- Needs quotes example with my Buildscript.msbuild file -->
<Exec Command=""$(MSBuildThisFileDirectory)\wix\wixscript.bat" $(VersionNumber) $(VersionNumberShort)"
ContinueOnError="false"
IgnoreExitCode="false"
WorkingDirectory="$(MSBuildProjectDirectory)\wix" />
Ответ 19
То же, что и другие ответы, в моем случае это было из-за недостающего файла. Чтобы узнать, что является отсутствующим файлом, вы можете перейти в окно вывода, и он сразу покажет вам, что пропало.
Чтобы открыть окно вывода в Visual Studio:
- Ctrl + Alt + O
- Вид > Выход
![введите описание изображения здесь]()
Ответ 20
Я исправил это, просто перезапустив Visual Studio - я только что запустил dotnet tool install xxx
в окне консоли, и VS еще не выбрал новые переменные среды и/или параметры пути, которые были изменены, поэтому быстрый перезапуск решил проблему.
Ответ 21
Это довольно просто, я столкнулся с этой проблемой и смущающе провалился.
Приложение использует аргументы командной строки, я удалил их, а затем добавил их обратно. Вдруг проект не смог построить.
Visual Studio → Свойства проекта → убедитесь, что вы используете вкладку "Отладка" (не вкладка "Build Events" ) → Аргументы командной строки
Я использовал текстовую область Post и Pre-build, которая была неправильной в этом случае.
Ответ 22
Для меня это произошло после обновления пакетов 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 и снова открыл его, проблема была исправлена.
Ответ 23
Мое решение было просто: как вы пытались отключить его и снова? Поэтому я перезапустил компьютер, и проблема исчезла.
Ответ 24
Я также столкнулся с этой проблемой 9009
, столкнувшись с ситуацией перезаписи.
В принципе, если файл уже существует и вы не указали переключатель /y
(который автоматически перезаписывается), эта ошибка может возникнуть при запуске из сборки.
Ответ 25
На самом деле я заметил, что по какой-то причине переменная среды% windir% иногда стирается. То, что сработало для меня, было изменено на переменную среды windir на c:\windows, перезапустить VS и что это. Таким образом, вы не можете изменять файлы решений.
Ответ 26
По крайней мере, в 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)
Ответ 27
Еще одна причина:
Если ваше событие pre-build ссылается на другой путь к bin файлам, и вы видите эту ошибку при запуске msbuild, но не Visual Studio, тогда вам нужно вручную организовать проекты в файле *.sln(с текстовым редактором), чтобы проект нацелены на событие, которое создается перед проектом события. Другими словами, msbuild использует порядок, в котором проекты перечислены в файле *.sln, тогда как VS использует знания зависимостей проекта. Это произошло, когда инструмент, который создает базу данных, которая будет включена в wixproj, была указана после wixproj.
Ответ 28
Я думаю, что в моем случае были русские символы в пути (все проекты были в папке пользователя). Когда я помещал решение в другую папку (прямо на диск), все стало нормально.
Ответ 29
Мое решение состояло в том, чтобы создать копию файла и добавить шаг к заданию сборки, чтобы скопировать мой файл поверх оригинала.
Ответ 30
Для меня это была перезагрузка Visual Studio.
У меня была построена gulp с кодом 9009.
Я установил gulp, но это не отразилось, пока я не перезапустил Visual Studio.