IT

이 빌드 중에 "코드 9009로 종료"란 무엇을 의미합니까?

lottoking 2020. 3. 22. 10:53
반응형

이 빌드 중에 "코드 9009로 종료"란 무엇을 의미합니까?


이 오류 메시지는 무엇을 의미합니까? 이 문제를 해결하려면 어떻게해야합니까?

코드 9009로 AssemblyInfo.cs가 종료 됨


Visual Studio의 .NET 솔루션에서 빌드 후 단계의 일부로 문제가 발생했을 수 있습니다.


사전 또는 사후 빌드 이벤트 명령에서 실행중인 명령의 전체 경로를 제공하려고 했습니까?

xcopyVisual Studio 2008의 빌드 후 이벤트 명령 으로 인해 9009 오류가 발생했습니다 .

명령 "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의 환경 변수에서 PATH 변수를 변경 한 후 동일한 변수가있었습니다. 기본으로 다시 변경하면 도움이되었습니다.


빌드 후 이벤트 스크립트가 지정된 경로에 존재하지 않는 배치 파일을 실행하려고 할 때 오류 9009가 발생했습니다.


경로 환경 변수를 수정할 때이 오류가 발생했습니다. 편집 후 실수로 Path=경로 문자열의 시작 부분에 추가 했습니다. 이러한 잘못된 경로 변수를 사용하여 명령 줄에서 XCopy를 실행할 수 없었으며 (명령 또는 파일을 찾을 수 없음) Visual Studio는 빌드 후 단계 실행을 거부했으며 코드 9009의 오류가 발생했습니다.

XCopy는 일반적으로 C : \ Windows \ System32에 있습니다. Path 환경 변수가 DOS 프롬프트에서 XCopy가 해결되면 Visual Studio가 내 솔루션을 잘 구축했습니다.


스크립트가 실제로 필요한 작업을 수행하고 오류에 대해 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"


다른 변형 :

오늘 cron에서 사용하는 시스템 계정에 Python 디렉토리 경로가 없으므로 win32의 cron에서 python 인터프리터를 호출하고 ExitCode (% ERRORLEVEL %) 9009를 사용합니다.


필자의 경우 문제는 테스트 클래스 라이브러리의 빌드 후 이벤트에 대해 명령 줄에서 명령을 사용하려고 할 때 발생했습니다. 따옴표를 사용하는 경우 :

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

또는 콘솔을 사용하는 경우 :

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

이것은 나를 위해 문제를 해결했습니다.


또한 프로젝트의 빌드 후 이벤트 편집 창에 줄 바꿈이 없는지 확인하십시오. 때때로 여러 줄로 웹에서 xcopy 명령을 복사하여 VS에 붙여 넣으면 문제가 발생합니다.


사전 빌드 단계에서 줄 끝에 "> myFile.txt"를 추가 한 다음 파일에서 실제 오류를 검사했습니다.


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에서이 오류가 발생하면 출력 창을 확인하고 문제가 설정되지 않은 환경 변수인지 확인하십시오.


저에게는 디스크 공간이 부족하여 쓸 수없는 파일이 나중에있을 것으로 예상되었습니다. 다른 답변은 누락 된 파일 (또는 이름이 잘못되었거나 이름별로 잘못 참조 된 파일)을 언급했지만 근본 원인은 디스크 공간 부족입니다.


경로의 공백으로 인해 파일의 다른 변형을 찾을 수 없습니다. 내 경우에는 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" />

다른 답변과 동일합니다. 필자의 경우 파일이 누락 되었기 때문입니다. 누락 된 파일이 무엇인지 알기 위해 출력 창으로 이동하면 누락 된 항목을 바로 보여줍니다.

Visual Studio에서 출력 창을 열려면

  1. Ctrl + Alt + O
  2. 보기> 출력

여기에 이미지 설명을 입력하십시오


Visual Studio를 다시 시작 하여이 문제를 해결 dotnet tool install xxx했습니다. 콘솔 창에서 실행 했지만 VS가 변경된 새로운 환경 변수 및 / 또는 경로 설정을 아직 ​​선택하지 않았으므로 빠른 다시 시작으로 문제가 해결되었습니다.


이것은 매우 기본적이고,이 문제가 있었고, 창피한 단순한 실패입니다.

응용 프로그램 사용 명령 줄 인수를 제거하고 다시 추가했습니다. 갑자기 프로젝트를 빌드하지 못했습니다.

Visual Studio-> 프로젝트 속성-> '이벤트 빌드'탭이 아닌 '디버그'탭을 사용하는지 확인-> 명령 줄 인수

이 경우 잘못된 및 게시 / 사전 빌드 텍스트 영역을 사용했습니다.


나를 위해 큰 솔루션 (~ 80 프로젝트)에서 하나의 PostSharp 버전에서 다음 버전으로 너겟 패키지를 업그레이드 한 후에 일어났습니다. 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와 관련된 여러 반복 경로로 인해 PATH 변수가 너무 오래 손상되었습니다. 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)

또 다른 이유 : 빌드 전 이벤트가 다른 프로젝트 저장소 경로를 참조하고 msbuild를 실행할 때이 오류가 표시되지만 Visual Studio는 실행하지 않으면이 오류가 * .sln 파일 (텍스트 편집기 사용)에 수동으로 정렬되어야합니다. 이벤트에서 타겟팅하는 프로젝트는 이벤트 프로젝트보다 먼저 빌드됩니다. 즉, msbuild는 프로젝트가 * .sln 파일에 나열된 순서를 사용하지만 VS는 프로젝트 종속성에 대한 지식을 사용합니다. wixproj에 포함될 데이터베이스를 작성하는 도구가 wixproj 뒤에 나열 될 때 이런 일이 발생했습니다.


필자의 경우 경로에 러시아 기호가 있다고 생각합니다 (모든 프로젝트는 사용자 폴더에 있음). 다른 폴더 (디스크에 직접)에 솔루션을 넣으면 모든 것이 잘되었습니다.


내 해결책은 파일 사본을 만들고 빌드 작업에 단계를 추가하여 파일을 원본 위에 복사하는 것이 었습니다.


전 세계적으로 grunt를 설치했는지 확인해야합니다

참고 URL : https://stackoverflow.com/questions/1351830/what-does-exited-with-code-9009-mean-during-this-build

반응형