我们在哪里编辑 AfterBuild 目标 Visual Studio
Where do we edit AfterBuild target in Visual Studio
今天,我在尝试构建GitHub 项目时了解到AfterBuild
目标。我很难找出在构建后被触发的失败命令。我不确定命令是从哪里被触发的,因为它的 post 构建事件是空的。
这是我为消除错误而评论的标签:
<Target Name="AfterBuild" DependsOnTargets="_GetSignToolPath">
<Exec Command=""$(_SignToolPath)" sign /fd sha256 /sha1 $(SigningCertificateThumbprint) /t http://timestamp.verisign.com/scripts/timstamp.dll /v "$(TargetPath)"" />
<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
目标是一个空的预定义目标,它与其他目标相同,例如BeforeBuild
、CoreBuild
等等。您可以在此处找到详细说明: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 项目构建输出详细程度设置为 Detailed
或 Diagnostic
选项 > 项目和解决方案 > 构建和 运行。您甚至可以搜索并找到您想要查看的相关targets/events。
做了一个小测试,下面是一些截图:
顺便说一句,是的,不方便,确实,如果能用UI.
set/modified就更好了
今天,我在尝试构建GitHub 项目时了解到AfterBuild
目标。我很难找出在构建后被触发的失败命令。我不确定命令是从哪里被触发的,因为它的 post 构建事件是空的。
这是我为消除错误而评论的标签:
<Target Name="AfterBuild" DependsOnTargets="_GetSignToolPath">
<Exec Command=""$(_SignToolPath)" sign /fd sha256 /sha1 $(SigningCertificateThumbprint) /t http://timestamp.verisign.com/scripts/timstamp.dll /v "$(TargetPath)"" />
<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
目标是一个空的预定义目标,它与其他目标相同,例如BeforeBuild
、CoreBuild
等等。您可以在此处找到详细说明: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 项目构建输出详细程度设置为 Detailed
或 Diagnostic
选项 > 项目和解决方案 > 构建和 运行。您甚至可以搜索并找到您想要查看的相关targets/events。
做了一个小测试,下面是一些截图:
顺便说一句,是的,不方便,确实,如果能用UI.
set/modified就更好了