2010-02-12 3 views
3

Comment puis-je arrêter ou continuer une génération, en fonction de la saisie par l'utilisateur, à l'aide de MSBuild?Comment puis-je effectuer une dérivation en fonction de l'entrée utilisateur dans MSBuild?

J'ai actuellement dans mon fichier de projet:

<Target Name="Afterbuild"> 
    <MSBuild.ExtensionPack.UI.Dialog TaskAction="Confirm" Title="Production Deployment" Button1Text="Continue" Button2Text="Cancel" Text="WARNING !!! You are about to overwrite code on the prodution server. Please confirm!"> 
     <Output TaskParameter="ButtonClickedText" PropertyName="Clicked"/>    
    </MSBuild.ExtensionPack.UI.Dialog> 

    <Message Text="User Clicked: $(Clicked)"/> 
    <Message Text="User Typed: $(Typed)"/> 
</Target> 

Je ne suis pas sûr de la façon de procéder.

+0

Où est la propriété dactylographié $ définie? Je ne le vois pas défini dans votre code – Jake

Répondre

4

Vous pouvez utiliser la tâche d'erreur avec une condition:

<Target Name="Afterbuild"> 
    <MSBuild.ExtensionPack.UI.Dialog TaskAction="Confirm" Title="Production Deployment" Button1Text="Continue" Button2Text="Cancel" Text="WARNING !!! You are about to overwrite code on the prodution server. Please confirm!"> 
    <Output TaskParameter="ButtonClickedText" PropertyName="Clicked"/>    
    </MSBuild.ExtensionPack.UI.Dialog> 

    <Error Condition="'$(Clicked)' == 'Cancel'" 
     Text="Build have been canceled by user"/> 

    <CallTarget Condition="'$(Clicked)' == 'Continue'" 
       Targets="ContinueBuild" 
       Text="Proceed with build"/> 
</Target> 
Questions connexes