Что означает это сообщение об ошибке? Что я могу сделать, чтобы исправить эту проблему?
AssemblyInfo.cs вышел с кодом 9009
Проблема, вероятно, происходит как часть этапа после сборки в .NET-решении в Visual Studio.
Что означает это сообщение об ошибке? Что я могу сделать, чтобы исправить эту проблему?
AssemblyInfo.cs вышел с кодом 9009
Проблема, вероятно, происходит как часть этапа после сборки в .NET-решении в Visual Studio.
Вы пытались указать полный путь к команде, которая выполняется в команде события 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\
Обратите внимание, что этот пример в отношении пробелов не проверен.
Код ошибки 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
Имела ту же переменную после изменения переменной PATH из переменных окружения в Win 7. Возвращение к умолчанию помогло.
У меня была ошибка 9009, когда событие post post script пыталось запустить пакетный файл, который не существовал в указанном пути.
Я вызвал эту ошибку, когда я отредактировал переменную окружения Path. После редактирования я случайно добавил Path=
в начало строки пути. С такой измененной переменной пути мне не удалось запустить XCopy в командной строке (никакая команда или файл не найден), а Visual Studio отказалась запускать шаг после сборки, ссылаясь на ошибку с кодом 9009.
XCopy обычно находится в C:\Windows\System32. Как только переменная окружения Path разрешила XCopy получить разрешение в приглашении DOS, Visual Studio хорошо построила мое решение.
Если script на самом деле делает то, что ему нужно сделать, и просто Visual Studio выдает вам сообщение об ошибке, которую вы могли бы просто добавить:
exit 0
до конца script.
Проверьте орфографию. Я пытался вызвать исполняемый файл, но имел имя с ошибкой и дал мне сообщение 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 из cron в win32 и беру ExitCode (% ERRORLEVEL%) 9009, потому что системная учетная запись, используемая cron, не имеет пути к каталогу Python.
Проблема в моем случае возникла, когда я попытался использовать команду в командной строке для события Post-build в моей тестовой библиотеке классов. Когда вы используете такие кавычки:
"$(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" в конец строки на этапе предварительной сборки, а затем проверил файл на фактическую ошибку.
Тфа ответ был отклонен, но на самом деле может вызвать эту проблему. Благодаря 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, проверьте окно вывода и посмотрите, является ли проблема неустановленной переменной среды.
Для меня дисковое пространство было низким, и ожидается, что файлы, которые не могут быть записаны, будут представлены позже. В других ответах упоминались недостающие файлы (или неправильно названные/неправильные ссылки на файлы), но основной причиной было отсутствие дискового пространства.
Еще один вариант файла не найден, из-за пробелов в пути. В моем случае в 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" />
То же, что и другие ответы, в моем случае это было из-за недостающего файла. Чтобы узнать, что является отсутствующим файлом, вы можете перейти в окно вывода, и он сразу покажет вам, что пропало.
Чтобы открыть окно вывода в Visual Studio:
Я исправил это, просто перезапустив Visual Studio - я только что запустил dotnet tool install xxx
в окне консоли, и VS еще не выбрал новые переменные среды и/или параметры пути, которые были изменены, поэтому быстрый перезапуск решил проблему.
Это довольно просто, я столкнулся с этой проблемой и смущающе провалился.
Приложение использует аргументы командной строки, я удалил их, а затем добавил их обратно. Вдруг проект не смог построить.
Visual Studio → Свойства проекта → убедитесь, что вы используете вкладку "Отладка" (не вкладка "Build Events" ) → Аргументы командной строки
Я использовал текстовую область 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.
Переменная PATH была испорчена слишком долго, с несколькими повторяющимися путями, связанными с PostSharp.Patterns.Diagnostics. Когда я закрыл Visual Studio и снова открыл его, проблема была исправлена.
Мое решение было просто: как вы пытались отключить его и снова? Поэтому я перезапустил компьютер, и проблема исчезла.
Я также столкнулся с этой проблемой 9009
, столкнувшись с ситуацией перезаписи.
В принципе, если файл уже существует и вы не указали переключатель /y
(который автоматически перезаписывается), эта ошибка может возникнуть при запуске из сборки.
На самом деле я заметил, что по какой-то причине переменная среды% windir% иногда стирается. То, что сработало для меня, было изменено на переменную среды windir на c:\windows, перезапустить VS и что это. Таким образом, вы не можете изменять файлы решений.
По крайней мере, в 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)
Еще одна причина: Если ваше событие pre-build ссылается на другой путь к bin файлам, и вы видите эту ошибку при запуске msbuild, но не Visual Studio, тогда вам нужно вручную организовать проекты в файле *.sln(с текстовым редактором), чтобы проект нацелены на событие, которое создается перед проектом события. Другими словами, msbuild использует порядок, в котором проекты перечислены в файле *.sln, тогда как VS использует знания зависимостей проекта. Это произошло, когда инструмент, который создает базу данных, которая будет включена в wixproj, была указана после wixproj.
Я думаю, что в моем случае были русские символы в пути (все проекты были в папке пользователя). Когда я помещал решение в другую папку (прямо на диск), все стало нормально.
Мое решение состояло в том, чтобы создать копию файла и добавить шаг к заданию сборки, чтобы скопировать мой файл поверх оригинала.
Для меня это была перезагрузка Visual Studio. У меня была построена gulp с кодом 9009. Я установил gulp, но это не отразилось, пока я не перезапустил Visual Studio.