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


292

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

코드 9009로 AssemblyInfo.cs가 종료 됨


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


7
OP는이 문제를 해결하기 위해 다시 돌아 오지 않지만 많은 답변과 많은 Google 주스가 있습니다. 자, 문제를 추론하려고합니까?
Anthony Mastrean 2016 년

13
Output Window는 나
에게도이

답변:


241

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

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\

공백과 관련된이 예제는 테스트되지 않았습니다.


44
또한 게시 및 사전 빌드 이벤트에서 9009 오류가 발생했습니다. Visual Studio에서 출력 탭을 확인하면 문제가 표시됩니다. 내 경우에는 내가 공간을 포함하는 경로에 액세스하려고 한
필 헤일

16
나는 이것과 비슷한 문제가 있었지만 폴더 이름에 공백이 생겼습니다. 경로를 따옴표 ( "$(SolutionDir)packages\NUnit.2.5.10.11092\tools\"nunit-console "$(TargetPath)") 로 묶으면 해결되었습니다.
저스틴 모건

1
Java 애플릿을 사용하여 JS 및 CSS를 사전 컴파일하는 사전 빌드 이벤트와 비슷한 문제가 발생했습니다 ... Java 런타임을 서버에 배치하지 않은 것으로 나타났습니다.
saluce

2
그것은 가능성이 PATH환경 변수는 어떻게 든 분실? 때때로이 오류가 발생합니다. 나는이 없다 npm install빌드 전 이벤트로 설정을하고, (나는 모든 설정입니다 가정 때문에) 처음에 작동하지만, 무작위 그것은 (내가 믿는 솔루션 / 나뭇 가지 사이를 전환 할 때 일반적으로) 하루 동안 작동이 중지되며, 더 이상 것입니다 에 대해 알고 npm있습니다. VS를 다시 시작하면 문제가 해결됩니다 ... 내가 PATH올바르게 설정되었지만 VS에 의해 일어나는 것처럼 보입니다. VS 내부에서 env 변수를 볼 수있는 방법이 있다면 이것을 확인할 수 있습니다.
jamiebarrow

2
다른 환경에서 빌드가 충돌하지 않도록 보호하려면 D : \에 설치된 창을 @thehhv answer와 함께 환경 변수를 사용하십시오.%systemroot%\System32\xcopy ...
Dorival

110

오류 코드 9009는 오류 파일을 찾을 수 없음을 의미합니다. 여기에 답변에 게시 된 모든 근본적인 이유는 이유를 알아내는 데 큰 영감을 주지만 오류 자체는 단순히 나쁜 길을 의미합니다.


1
파일을 찾을 수없는 문제는 csproj 파일의 참조가 $ (PROGRAMFILES) \ Microsoft SDKs \ TypeScript \ tsc였으며 $ (PROGRAMFILES) \ Microsoft SDKs \ TypeScript \ 1.0 \ tsc
여야했습니다.

실제로 첫 번째 질문에 답변 해 주셔서 감사합니다.
AntonK

그리고 그것은 명령 자체를 찾을 수없는 경우에도 시도 된 명령과 관련된 파일을 찾지 못한다는 것을 의미합니다. 델 대신 삭제를 사용하고있었습니다. 그것은 당신에게 9009도 줄 것입니다.
Mircea Ion

84

Microsoft Visual Studio x86 도구 사용을위한 일부 환경 설정이 누락 된 경우 발생합니다.
따라서 빌드 후 단계에서 첫 번째 명령으로 추가하십시오.

Visual Studio 2010의 경우 :

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

의견에 언급 된 @FlorianKoch와 VS 2017의 경우 :

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

다른 명령 앞에 배치해야합니다.
Microsoft Visual Studio x86 도구를 사용하기위한 환경을 설정합니다.


3
어디에서 어떤 파일을 추가해야 call "$(DevEnvDir)..\Tools\vsvars32.bat"합니까? 감사합니다
surfmuggle

2
Path환경 변수에 항목을 추가해야했습니다 . 자세한 내용은 출력 창을 확인하십시오.
paqogomez

주의. 이는 많은 빌드 서버에서 실패합니다 : blogs.clariusconsulting.net/kzu/devenvdir-considered-harmful
George Mauer

2
x64 비트 툴체인에 대해 다음과 같이 해결했습니다. "$ (DevEnvDir) .. \ VC \ vcvarsall.bat"
codekiddy

1
VS 2017의 경우 파일은"$(DevEnvDir)..\Tools\VsDevCmd.bat"
Florian Koch

57

아마도 당신은 당신의 결과 경로에 공간이 있습니다.

경로를 인용하여 공백을 허용하여이 문제를 해결할 수 있습니다. 예를 들면 다음과 같습니다.

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

9
+1-이것은 내가 겪고있는 문제입니다. 프로젝트를 로컬로 빌드 할 때 빌드 후 명령이 작동했지만 빌드 서버에서 빌드 할 때 실패했습니다. 방금 큰 따옴표 사이에 명령을 배치하여 문제를 해결했습니다. 감사.
sheikhjabootie

따라서 오류 9009가 "파일을 찾을 수 없음"이라고 추측하는 것이 합리적입니까? 개인적으로, "MSBuild 오류 9009 란 무엇입니까?" 독립 실행 형 질문으로 완벽하지만 괜찮습니다.
The Dag

11

Win 7의 환경 변수에서 PATH 변수를 변경 한 후 동일한 변수가있었습니다. 기본으로 다시 변경하면 도움이되었습니다.


10

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


6

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

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


6

내 정확한 오류는

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

스크립트가 실제로 필요한 작업을 수행하고 오류에 대해 Visual Studio에서 버그를 범한 경우 다음을 추가 할 수 있습니다.

exit 0

스크립트 끝까지


5
잠재적 인 오류를 감추는 길은 없어야합니다
igelineau

1
나는이 마스크해서는 안 동의
AltF4_

5

철자를 확인하십시오. 실행 파일을 호출하려고했지만 철자가 틀 렸으며 exited with code 9009메시지가 표시되었습니다.


1
이를 위해 시스템에 실행 파일이 있는지 확인하십시오.
Joshua Drake

5

필자의 경우 호출 한 실행 파일이 프로젝트 디렉토리에 있었기 때문에 명령을 호출하기 전에 먼저 "CD"(디렉토리 변경)를 올바른 디렉토리로 변경해야했습니다.

예:

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

1
이로 인해 Visual Studio의 devenv.exe를 실행하는 데 문제가 해결되었지만 폴더를 두 번째로 지정할 필요가 없습니다. build.bat 만 호출하면됩니다.
FrinkTheBrave

4

다른 변형 :

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


4

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

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

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

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

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


4

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


3

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


jesse가 xcopy 명령 중간에 줄 바꿈이없는 것에 대해 좋은 지적을하지만, 일반적으로이 필드에 줄 바꿈이 있으면 유효합니다. 각 줄은 자체 명령으로 해석해야합니다.
RJFalconer

3

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


2

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


2

나를 위해 큰 솔루션 (~ 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를 닫았다가 다시 열면 문제가 해결되었습니다.


2

경로의 공백으로 인해 파일의 다른 변형을 찾을 수 없습니다. 내 경우에는 msbuild 스크립트에서. HTML 스타일을 사용해야했습니다 & quot; 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

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

Visual Studio에서 출력 창을 열려면

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

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


2

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


1

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

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

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

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


1

내 솔루션은 다음과 같이 간단했습니다. 전원을 껐다 켜 보셨습니까? 그래서 컴퓨터를 다시 시작했는데 문제가 사라졌습니다.


1

9009덮어 쓰기 상황 이 발생했을 때이 문제가 발생했습니다.

기본적으로 파일이 이미 존재하고 /y스위치를 자동으로 덮어 쓰지 않은 경우 빌드에서 실행할 때이 오류가 발생할 수 있습니다.


0

실제로 어떤 이유로 % windir % 환경 변수가 지워지는 경우가있었습니다. 나를 위해 일한 것은 windir 환경 변수를 c : \ windows로 다시 설정하고 VS를 다시 시작한 것입니다. 그렇게하면 솔루션 파일을 수정하지 않아도됩니다.


0

적어도 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)

0

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


0

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


0

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


0

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.