我有一些特定的构建后操作与Release配置相关联,后者部署到测试环境。有没有办法在某人使用特定项目的Release配置进行本地构建之前启用弹出警告?如果没有,我可以更聪明地进行构建后的操作。
答案 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>