Visual Studio 2019中编辑C#项目AfterBuild目标是否有对应UI界面?
问题内容
今天我在尝试构建一个GitHub项目时了解到了AfterBuild目标,我花了很长时间排查一个在生成后触发的报错命令,由于该项目的生成后事件是空的,我一直无法确定该命令的来源。
我注释了如下标签才解决了该报错:
<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>
我们编辑生成后事件时,可以打开任意C#项目的项目属性,点击Build Events标签页,即可看到编辑生成后事件的选项:
因此想询问,Visual Studio中是否有类似的UI界面可以编辑C#项目的AfterBuild目标?还是只能先卸载项目后修改项目XML文件?我使用的版本是Visual Studio 2019。
解答
Visual Studio 2019 原生没有提供类似生成后事件的可视化UI来编辑AfterBuild这类自定义MSBuild目标,这类配置只能通过编辑项目XML文件完成。
- 无需提前卸载项目即可编辑XML:在解决方案资源管理器中右键点击对应项目,直接选择「编辑项目文件」,就能打开项目的XML配置直接修改,操作更简便。
Build Events标签页的生成后事件本质上也是由VS自动转换为对应的MSBuild目标逻辑执行的,只是简单的命令行操作被封装成了可视化表单便于使用。而AfterBuild目标支持更复杂的配置,比如你遇到的依赖其他目标、执行Copy这类内置MSBuild任务、调用自定义属性等逻辑,无法通过简单的UI表单承载,因此VS没有做对应的可视化编辑入口。- 如果项目有大量自定义生成逻辑,建议把独立的目标配置写到单独的
.props或.targets文件中,再在项目文件中引入这些文件,既可以让主项目配置更整洁,也方便多项目复用相同的生成规则。
内容的提问来源于stack exchange,提问作者RBT
相关产品推荐
相关产品推荐

