2010-11-19 3 views
1

팀 빌드 2010을 사용하여 웹 사이트를 게시하려고하지만 쉬운 옵션이 없습니다. 그래서 나는 매개 변수를 가진 에이전트 ("aspnet_compiler.exe")의 프로세스를 호출하고 내 사이트를 게시하는 사용자 지정 활동을 만들려고했습니다.팀 정보 웹 사이트 구축 및 사용자 지정 코드 활동 문제

내가 폴더를 컴파일하고 프로젝트를 빌드, 폴더를 만들고 삭제할 수 있습니다 ...

는 그러나이 과정은 단지 내가 전화를 에이전트가 시작되지 않습니다 ... 문제는 무엇인가?

protected override void Execute(CodeActivityContext context) 
    { 
     // Obtain the runtime value of the Text input argument 
     // string text = context.GetValue(this.Text); 
     Process proc = new Process(); 
     proc.EnableRaisingEvents = true; 
     proc.StartInfo.WorkingDirectory = @"C:\Windows\Microsoft.NET\Framework\v2.0.50727"; 
     proc.StartInfo.FileName = "aspnet_compiler.exe"; 
     proc.StartInfo.Arguments = "-p "+context.GetValue(this.SourcesDirectory) + 
       " -v/" + PublishDirectory; 
     proc.Start(); 
     proc.WaitForExit(); 

     while (!proc.HasExited) 
     { 
     } 

     context.SetValue(Result,proc.StandardOutput.ReadToEnd()); 
    } 

다른 방법으로 웹 사이트를 제작/게시 할 수 있습니까? 내 코드에 무슨 문제가 있습니까?

+0

aspnet_compiler에서 invokeprocess를 사용하는 것과 동일한 문제가 있습니다. aspnet_compiler를 제외하고 invokeprocess로 작업 할 수있는 모든 것을 얻을 수 있습니다. 이상해. – Flores

답변

1

TFS가 프로젝트/솔루션을 빌드 할 때마다 자동으로 웹 프로젝트/사이트를 게시하고 _PublishedWebsites 폴더에 저장합니다. 당신은 쉽게 그것을 사용할 수 있습니다.

또한이 폴더를 다른 곳으로 복사/이동해야하거나 다른 파일/폴더에서이 작업을 수행해야하는 경우에도 CopyDirectory, DeleteDirectory 및 기타 Team Foundation Build Activities를 사용할 수 있습니다. 빌드 프로세스 중에 여전히 무언가를 실행해야하는 경우에는 직접 빌드 활동을 생성하는 대신 InvokeProcess 빌드 활동을 사용할 수 있습니다.