2009-10-05 2 views
1

빌드 스크립트가 성공적으로 실행되었지만 aspnet_compiler가 완료된 후에 아무 것도 실행하지 않아도됩니다. 프로젝트를 다른 폴더에 복사하려면 robocopy를 사용하고 싶습니다. 아래에 표시된 것처럼 컴파일 작업 위에 복사 작업을 넣으면 콘솔에 메시지가 표시되지만 컴파일 한 후에 배치하면 메시지가 표시되지 않습니다. 내가 놓친 게 있니? 완료 후 작업을 호출하는 컴파일러의 반환 코드를 확인해야합니까?NAnt 및 ASP.NET 컴파일러

<target name="copy" depends="init"> 
    <echo message="This is my message for robocopy..."/> 
</target> 

<target name="compile" depends="copy"> 
    <exec program="${msbuild.exe}" 
      commandline='MySolution.sln /p:Configuration=${Configuration};OutDir="${build.dir}\\"' /> 
</target> 

<target name="precompile-web" depends="compile"> 
    <exec program="${aspnet_compiler.exe}" 
     commandline='-v /MyProj-p "${build.dir}"\_PublishedWebsites\MyProj.Web' 
     /> 
그리고 네, 프리 D-웹 아래의 복사 작업을 이동하면 내가 변경할 때 /를이 = "사전 컴파일 - 웹"과 컴파일 작업은 "초기화"에 따라 달라집니다.
  • 프리 D 파일들을 웹
  • 에 대한 MSBuild를을 사용

  • 그들을 컴파일 파일이

    1. 복사하는 것이 잘되어 : 내가 정확하게 당신을 이해한다면

  • 답변

    1

    , 당신은 원하는?

    1. 복사 (IIS 등으로 사용) 다른 곳에있는 파일을 MSBuild를
    2. 프리 D에게이를 사용하여 파일을 컴파일 : 나는 당신이 그것을 주위에이 방법을 수행 할 거라고 생각했을 것이다

    내 방식이 맞다면 목표가 서로를 참조하기를 원할 것입니다.

    <target name="compile-and-publish" depends="compile,precompile-web,copy" /> 
    
    <target name="compile"> 
        <exec program="${msbuild.exe}" commandline='MySolution.sln /p:Configuration=${Configuration};OutDir="${build.dir}\\"' /> 
    </target> 
    
    <target name="precompile-web"> 
        <exec program="${aspnet_compiler.exe}" commandline='-v /MyProj-p "${build.dir}"\_PublishedWebsites\MyProj.Web' /> 
    </target> 
    
    <target name="copy" depends="init"> 
        <echo message="This is my message for robocopy..."/> 
    </target> 
    

    이렇게하면 (다시 사용하기 위해) 다른 표적에 의존까지 목표물의 각을 고정하지 않는하지만 당신은 당신이 손에서 일을 달성하는 데 필요한 순서를 얻을.

    좋아요.

    +0

    예 두 번째 명령 집합 인 가정 한대로 수행하고 싶었습니다. 문제는 그들이 발사 한 순서대로였습니다. 감사. –