이 오류 메시지는 무엇을 의미합니까? 이 문제를 해결하려면 어떻게해야합니까?
코드 9009로 AssemblyInfo.cs가 종료 됨
Visual Studio의 .NET 솔루션에서 빌드 후 단계의 일부로 문제가 발생했을 수 있습니다.
이 오류 메시지는 무엇을 의미합니까? 이 문제를 해결하려면 어떻게해야합니까?
코드 9009로 AssemblyInfo.cs가 종료 됨
Visual Studio의 .NET 솔루션에서 빌드 후 단계의 일부로 문제가 발생했을 수 있습니다.
답변:
사전 또는 사후 빌드 이벤트 명령에서 실행중인 명령의 전체 경로를 제공하려고 했습니까?
xcopy
Visual 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\
공백과 관련된이 예제는 테스트되지 않았습니다.
"$(SolutionDir)packages\NUnit.2.5.10.11092\tools\"nunit-console "$(TargetPath)"
) 로 묶으면 해결되었습니다.
PATH
환경 변수는 어떻게 든 분실? 때때로이 오류가 발생합니다. 나는이 없다 npm install
빌드 전 이벤트로 설정을하고, (나는 모든 설정입니다 가정 때문에) 처음에 작동하지만, 무작위 그것은 (내가 믿는 솔루션 / 나뭇 가지 사이를 전환 할 때 일반적으로) 하루 동안 작동이 중지되며, 더 이상 것입니다 에 대해 알고 npm
있습니다. VS를 다시 시작하면 문제가 해결됩니다 ... 내가 PATH
올바르게 설정되었지만 VS에 의해 일어나는 것처럼 보입니다. VS 내부에서 env 변수를 볼 수있는 방법이 있다면 이것을 확인할 수 있습니다.
%systemroot%\System32\xcopy ...
오류 코드 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 도구를 사용하기위한 환경을 설정합니다.
call "$(DevEnvDir)..\Tools\vsvars32.bat"
합니까? 감사합니다
Path
환경 변수에 항목을 추가해야했습니다 . 자세한 내용은 출력 창을 확인하십시오.
"$(DevEnvDir)..\Tools\VsDevCmd.bat"
아마도 당신은 당신의 결과 경로에 공간이 있습니다.
경로를 인용하여 공백을 허용하여이 문제를 해결할 수 있습니다. 예를 들면 다음과 같습니다.
xcopy "$(SolutionDir)\Folder Name\File To Copy.ext" "$(TargetDir)" /R /Y /I
Win 7의 환경 변수에서 PATH 변수를 변경 한 후 동일한 변수가있었습니다. 기본으로 다시 변경하면 도움이되었습니다.
경로 환경 변수를 수정할 때이 오류가 발생했습니다. 편집 후 실수로 추가했습니다Path=
경로 문자열의 시작 부분에 했습니다. 이러한 잘못된 경로 변수를 사용하면 명령 줄에서 XCopy를 실행할 수 없었으며 (명령 또는 파일을 찾을 수 없음) Visual Studio는 빌드 후 단계 실행을 거부했으며 코드 9009의 오류가 발생했습니다.
XCopy는 일반적으로 C : \ Windows \ System32에 있습니다. Path 환경 변수가 DOS 프롬프트에서 XCopy가 해결되면 Visual Studio가 내 솔루션을 잘 구축했습니다.
철자를 확인하십시오. 실행 파일을 호출하려고했지만 철자가 틀 렸으며 exited with code 9009
메시지가 표시되었습니다.
필자의 경우 호출 한 실행 파일이 프로젝트 디렉토리에 있었기 때문에 명령을 호출하기 전에 먼저 "CD"(디렉토리 변경)를 올바른 디렉토리로 변경해야했습니다.
예:
cd "$(SolutionDir)"
call "$(SolutionDir)build.bat"
다른 변형 :
오늘 cron에서 사용하는 시스템 계정에 Python 디렉토리 경로가 없기 때문에 win32의 cron에서 python 인터프리터를 호출하고 ExitCode (% ERRORLEVEL %) 9009를 사용합니다.
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에서이 오류가 발생하면 출력 창을 확인하고 문제가 설정되지 않은 환경 변수인지 확인하십시오.
또한 프로젝트의 빌드 후 이벤트 편집 창에 줄 바꿈이 없는지 확인하십시오. 때때로 여러 줄로 웹에서 xcopy 명령을 복사하여 VS에 붙여 넣으면 문제가 발생합니다.
나를 위해 큰 솔루션 (~ 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를 닫았다가 다시 열면 문제가 해결되었습니다.
경로의 공백으로 인해 파일의 다른 변형을 찾을 수 없습니다. 내 경우에는 msbuild 스크립트에서. HTML 스타일을 사용해야했습니다 & quot; 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 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 뒤에 나열 될 때 이런 일이 발생했습니다.
내 해결책은 파일 사본을 만들고 빌드 작업에 단계를 추가하여 파일을 원본 위에 복사하는 것이 었습니다.