2017-11-08 10 views
1

MSBuild 버전 14.0을 사용합니다.대상 입력을 변경하지 않아도 MSBuild가 대상을 건너 뛰지 않습니다.

는 문서 here에 따라, 나는 정의 이런 내 자신의 Build 작업 :

<Target Name="Build" 
      Inputs="@(Compile)" 
      Outputs="MyLibrary.dll"> 

      <Csc 
       Sources="@(Compile)" 
       OutputAssembly="MyLibrary.dll"/> 
    </Target> 

생각은 점진적으로 구축하여 구축 시간을 단축하는 것입니다 - 빌드 작업이 단지의 경우 중 하나를 실행하도록되어 프로젝트의 모든 .cs 파일의 모음 인 @(Compile) 목록의 파일은 MyLibrary.dll의 최신 버전을 만든 후 편집됩니다.

msbuild를 MyProject.csproj/t : 빌드/P : 플랫폼 = "anycpu를"/ fileLogger /flp:logfile=Output.log;verbosity:minimal MSBuild를 사용

, 나는 다음과 같은 명령을 실행

처음 명령을 실행했을 때 예상대로 모든 것이 처음부터 작성되었습니다.

그러나 명령을 다시 실행했을 때 파일의 내용을 변경하지 않고 매번 처음부터 프로젝트를 빌드했습니다.

Target에 대한 Inputs 매개 변수에 포함 된 파일을 변경하지 않아도 MSBuild에서 Build 대상을 건너 뛰는 이유는 무엇입니까? 내 .csproj 파일에서 다음 줄을 삭제하는 것을 잊었다 때문에

답변

0

것은이 작동하지 않는 :

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 

그래서 Microsoft.CSharp.targets에 의해 생성 된 Build 작업은 내가 정의했던 Build 작업을 무효화한다.

해당 줄이 삭제되면 사용자 지정 Build 작업이 예상대로 실행되었습니다.

+0

여기에서 솔루션을 공유해 주셔서 감사합니다. 답으로 표시하여 동일한 문제가있는 다른 커뮤니티 회원에게 도움이 될 수 있습니다. –