2010-11-19 8 views
1

Ich versuche, eine Website mit Team Build 2010 zu veröffentlichen, aber ich habe keine einfachen Optionen da draußen gesehen. Also habe ich versucht, eine benutzerdefinierte Aktivität zu erstellen, die einen Prozess im Agenten ("aspnet_compiler.exe") mit meinen Parametern aufruft und meine Site veröffentlicht.Über Team Erstellen und Erstellen von Websites, benutzerdefinierte Code Aktivitätsproblem

Ich kann Ordner löschen, Ordner erstellen, kompilieren und Projekte bauen ...

Aber dieser Prozess einfach nicht auf den Agenten starten, wenn ich es nennen ... was ist das Problem?

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()); 
    } 

Gibt es eine andere Möglichkeit zum Erstellen/Veröffentlichen von Websites? Was ist falsch an meinem Code?

+0

Ich habe das gleiche Problem mit InvokeProcess auf aspnet_compiler. Ich kann alles mit InvokeProcess außer dem aspnet_compiler arbeiten. Es ist seltsam. – Flores

Antwort

1

Jedes Mal, wenn TFS ein Projekt/eine Lösung erstellt, veröffentlicht es automatisch Webprojekte/Websites und speichert sie in einem Ordner mit dem Namen _PublishedWebsites. Sie können es leicht verwenden.

Zusätzlich, wenn Sie diesen Ordner an einen anderen Ort kopieren oder verschieben müssen oder wenn Sie dies mit anderen Dateien/Ordnern machen müssen, können Sie CopyDirectory, DeleteDirectory und andere Team Foundation Build Activities verwenden. Wenn Sie während des Erstellungsprozesses noch etwas ausführen müssen, können Sie die Build-Aktivität InvokeProcess verwenden, anstatt eine eigene Build-Aktivität zu erstellen.

Verwandte Themen