2015-12-21 16 views
0

我有一些特定的構建後操作綁定到發佈配置,它部署到測試環境。在某人使用發佈配置爲特定項目進行本地構建之前,是否有辦法啓用彈出式警告?如果沒有,我可以讓我的構建後行爲更加智能化。在構建發佈配置之前提示?

回答

2

您需要使用自定義的MSBuild任務。這是一個內聯任務,讓你開始。

<Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003' ToolsVersion="12.0"> 
    <UsingTask TaskName="ShowConfirmationPopup" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll"> 
    <ParameterGroup> 
     <Message ParameterType="System.String" Required="true" /> 
     <Title ParameterType="System.String" Required="false" /> 
     <Result ParameterType="System.Boolean" Output="true" /> 
    </ParameterGroup> 
    <Task> 
     <Reference Include="System.Windows.Forms"/> 
     <Using Namespace="System.Windows.Forms" /> 
     <Code Type="Fragment" Language="cs"><![CDATA[ 
     Result = MessageBox.Show(Message, Title ?? "MSBuild Confirmation", 
      MessageBoxButtons.YesNo, MessageBoxIcon.Question, 
      MessageBoxDefaultButton.Button1) == DialogResult.Yes; 
]]></Code> 
    </Task> 
    </UsingTask> 

    <Target Name="PromptReleaseBuild" BeforeTargets="PrepareForBuild" Condition="'$(Configuration)' == 'Release'"> 
    <ShowConfirmationPopup Message="Do Release Build?"> 
     <Output TaskParameter="Result" PropertyName="DoReleaseBuild" /> 
    </ShowConfirmationPopup> 
    <Error Text="Prompt refused" Condition="'$(DoReleaseBuild)' != 'true'" /> 
    </Target> 

</Project> 
相關問題