MSBuild를 통해 빌드를 실행하는 경우 MSBuild에서 /에서 어떤 컨텍스트가 실행됩니까?MSBUILD는 어떤 컨텍스트에서 실행됩니까?
프로젝트가 VS2010 (동일한 시스템에 있음)을 통해 빌드 된 경우 완벽하게 작동하는 명령 행 프로그램 (아약스 축소)을 호출하는 사전 빌드 이벤트가 있기 때문에 내가 묻는 이유는 우리가 빌드 시스템 (CCNet)이이를 구축하고 있습니다. 내가받는 오류는 9009입니다. 즉, 파일을 찾을 수 없다는 것을 의미합니다. 명령 줄 프로그램은 환경 경로가 그 위치에 대해 설정되어 있습니다 (환경 경로는 setx를 통해 설정됩니다. 현재 사용자에 대해서만 설정되어있을 수 있습니다). 따라서 CCNet이 MSBuild를 호출 할 때 그 이름 만 호출하면 다른 모든 경우에 완벽하게 작동합니다.
prebuild 이벤트는 MSBuild Exec 클래스에 의해 실행됩니다. cmd.exe의 숨겨진 인스턴스에서 명령을 실행합니다. 작업 디렉토리는 프로젝트의 출력 디렉토리로 설정되고, 초기 환경은 상위 프로세스로부터 상속됩니다. SETX를 사용하지 * 마십시오. 환경을 수정하지 않습니다. SET을 사용하십시오. PATH를 사용하여 경로를 변경하십시오. –
SET PATH는 어디에 사용해야합니까? 아약스 축소 프로그램을 설치 한 후 SETX를 한 번 사용했습니다. 미리 빌드 이벤트에서 SET PATH를 어떻게 사용합니까? – BlueChameleon
미리 빌드 이벤트에 넣으십시오 : set path = c : \ foo \ bar; % path %. –