前言
在VS中打开项目属性,选择“生成事件”选项卡。在“生成前事件命令行”或“生成后事件命令行”文本框中可以输入任何命令提示符或.bat文件中有效的命令:
但是,有没有可能执行更丰富的命令呢?
生成事件的本质上面设置的“生成事件”保存在哪?
编辑项目文件,可以看到它实际上是一个MsBuild目标,执行Exec
任务:
生成前事件是在PreBuildEvent
目标前运行,生成后事件是在PostBuildEvent
目标后运行。
广告
ASP.NET Core开发实战作者:[意]迪诺·埃斯波西托(Dino Esposito)著 赵利通 译
当当
购买
执行多任务既然是MsBuild目标,那就不光可以执行Exec
任务了。
我们可以同时执行多个MsBuild内置任务,比如将bin\Debug\net5.0目录中的所有文件复制到d:\tmp:
-
Message 记录一条消息
-
RemoveDir 删除指定的目录及其所有文件和子目录
-
CreateItem 使用输入项目填充项目集合,这里用来生成文件列表
-
Copy 将文件复制到指定位置
更多任务详情请查看MSBuild 任务参考[1]
可以看到执行正常:
如果现成的任务不能满足要求,我们还可以编写C#代码实现任务。
当然不是编写exe,而是使用内联任务[2]。
比如,输出一条错误日志:
通过本文,你可以了解到,如何自定义VS生成事件。