我们在哪里编辑 AfterBuild 目标 Visual Studio

Where do we edit AfterBuild target in Visual Studio

今天,我在尝试构建GitHub 项目时了解到AfterBuild 目标。我很难找出在构建后被触发的失败命令。我不确定命令是从哪里被触发的,因为它的 post 构建事件是空的。

这是我为消除错误而评论的标签:

<Target Name="AfterBuild" DependsOnTargets="_GetSignToolPath">
    <Exec Command="&quot;$(_SignToolPath)&quot; sign /fd sha256 /sha1 $(SigningCertificateThumbprint) /t http://timestamp.verisign.com/scripts/timstamp.dll /v &quot;$(TargetPath)&quot;" />
    <Copy SourceFiles="$(TargetPath)" DestinationFolder="$(MSBuildThisFileDirectory)..\Demo Website\Content" />
  </Target>

要编辑 post 构建事件,我们转到任何 C# 项目的项目属性,然后单击 Build Events 选项卡。在这里我们可以选择编辑 post-build 事件:

那么类似地,Visual Studio 中是否有任何 UI 来编辑 C# 项目的 AfterBuild 目标?或者这只能通过在卸载项目后修改项目 XML 来编辑。我正在使用 Visual Studio 2019.

简而言之:

VS 中没有其他 UI 可编辑 AfterBuild 目标,只能在项目 XML.

中编辑

正在分析:

据我所知,Visual Studio 中的 AfterBuild 目标不再有 UI。

实际上,AfterBuild目标是一个空的预定义目标,它与其他目标相同,例如BeforeBuildCoreBuild等等。您可以在此处找到详细说明:Override predefined targets.

文档提到:

By default, the empty targets in the common targets do nothing, but you can override their default behavior by defining the targets you want in a project file that imports the common targets.

所以,通常情况下,VS中的AfterBuild目标没有UI到edit/modify,如果你需要使用它,或者更准确地说,覆盖它,你需要在项目文件(.xxproj 文件)中编辑 MSBuild 代码。

关注你的问题,你提到你不确定从哪里触发命令,因为它的 post 构建事件是空的。

哦,停下来补充一些关于 post 构建事件的其他词。实际上,虽然 post 构建事件在 Build 完成后运行,但 post 构建事件在 <PropertyGroup>XXXXX</PropertyGroup> 中设置为 <PostBuildEvent> XXXXX</PostBuildEvent>,与 AfterBuild 目标关系不大.

但是是否可以考虑其他方法来找出命令被触发的位置,例如从VS的输出中检查输出信息window?

Output window 将为您提供有关构建过程的尽可能多的信息,如果您在工具 > 中将 MSBuild 项目构建输出详细程度设置为 DetailedDiagnostic选项 > 项目和解决方案 > 构建和 运行。您甚至可以搜索并找到您想要查看的相关targets/events。

做了一个小测试,下面是一些截图:

顺便说一句,是的,不方便,确实,如果能用UI.

set/modified就更好了