2011-02-09 6 views
0

Visual Studio에서 명령 줄에서 msbuild를 실행하는 동안 이상한 동작이 발생합니다.작업이 Msbuild와 잘 실행되지만 Visual Studio에서는 실행되지 않습니다.

솔루션 (s1)에 3 개의 프로젝트 (p1, p2, pB)가 포함되어 있습니다. p1과 p2는 "normal"VS 프로젝트이고 pb는 xml msbuild 파일입니다. 직접 작성했습니다. pB에 포함 된 작업의 목적은 소스 코드의 일부를 수정하는 것입니다.

p1과 P2가 pB에 의존하여 pB가 실행되는 첫 번째 프로젝트인지 확인하도록 종속성을 구성했습니다.

Visual Studio에서 편집 (F6 키 누름)을 수행하면 파일이 수정되지만 p1과 p2가 수정되기 전에 시작되어 내 결과가 내가 소비하지 않은 것으로 보입니다. 또한 빌드 콘솔을 보면 모든 것이 정상적으로 보입니다.

그리고 "msBuild s1"을 통해 컴파일을 시작하면 모든 것이 완벽 해집니다!

어떻게 VS2010과 msbuild간에 동일한 동작을 수행 할 수 있습니까? 당신이

<Target Name="BeforeBuild"> 
    <MSBuild Projects="pB.proj" Properties="Configuration=$(Configuration)" /> 
</Target> 

같은 PB는 두 프로젝트의 P1에서 BeforeBuild 프로젝트 및 P2를 등록하면

들으

+0

/maxcpucount를 사용하여 실행하면 msbuild가 계속 제대로 작동하는지 확인하십시오 : 4 –

답변

0

VS 솔루션을 만들 때마다 솔루션에있는 모든 프로젝트에서 상당히 많은 csproj 파일 인 .sln.cache 파일이 만들어집니다.

따라서 빌드 중에 csproj 파일을 수정해도 .sln.cache 파일을 사용하는 현재 빌드에는 영향을 미치지 않습니다.

0

당신은 MSBuild task를 호출하고 필요한 모든 매개 변수를 전달할 수 있습니다. 이 솔루션은 두 환경 모두에서 작동합니다.

+0

문제는 p1의 파일을 수정하지 않아서 실행되지 않는 것 같습니다. 그리고 그 pB가 실행되어야합니다. 시간 VS 빌드를 요청 ... –

+0

내 실수. PB.proj에 대한 변경 사항은 실행되지만 고려되지 않습니다. 어딘가에 취소 할 수있는 일종의 캐시가 있습니까? –

관련 문제