【问题标题】:Where do we edit AfterBuild target in Visual Studio我们在哪里编辑 Visual Studio 中的 AfterBuild 目标
【发布时间】:2021-08-25 09:05:53
【问题描述】:

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

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

<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>

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

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

【问题讨论】:

    标签: c# visual-studio msbuild post-build-event post-build


    【解决方案1】:

    简而言之:

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

    分析:

    据我所知,Visual Studio 中没有更多用于 AfterBuild 目标的 UI。

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

    提到的文件:

    默认情况下,公共目标中的空目标不执行任何操作,但您可以通过在导入公共目标的项目文件中定义所需的目标来覆盖它们的默认行为。

    因此,通常情况下,VS 中没有用于编辑/修改 AfterBuild 目标的 UI,如果您需要使用它,或者更准确地说,覆盖它,您需要在项目文件中编辑 MSBuild 代码(. xxproj 文件)。

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

    哦,停止并添加一些关于构建后事件的其他词。实际上,虽然构建完成后构建后事件运行,但构建后事件在&lt;PropertyGroup&gt;XXXXX&lt;/PropertyGroup&gt;中设置为&lt;PostBuildEvent&gt; XXXXX&lt;/PostBuildEvent&gt;,与AfterBuild目标关系不大。

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

    如果您在“工具”>“选项”>“项目和解决方案”>“构建并运行”中将 MSBuild 项目构建输出详细程度设置为 DetailedDiagnostic,则输出窗口将为您提供构建过程所需的尽可能多的信息。您甚至可以搜索并找到您想查看的相关目标/事件。

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

    顺便说一句,是的,不方便,确实,如果可以使用UI设置/修改会更好。

    【讨论】:

    • 非常详细的答案。谢谢你付出所有的努力。我不知道build log output verbosity 设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 2011-09-28
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2018-01-20
    相关资源
    最近更新 更多