为啥要用生成事件?
在有些场景非常有用. 比如项目包含一个自定义控件或者dll项目, 现在在主程序里调试, 发现控件有些不完善, 修改后再次引用, 反复进行的过程中, 偶尔忘记重新编译控件就直接运行主程序, 导致修改控件的新特性在主程序里显示还是旧版本老样子, 有时以为自己改错代码了, 浪费大量时间去调试, 犯的却是最低级错误: 忘记编译控件最新版本. 当你的项目是由多个相互关联小项目组成时, 这个特性会很有用.
所以这时在主程序里设置 "生成事件" => "生成前事件命令行" , 让主程序编译前必须先编译控件, 当同时修改控件和主程序代码时, 保证无论在控件还是主程序工程里做了修改, 两个结果都最新的. 避免偶尔浪费1-2小时查找最低级错误.
例子: 控件工程名叫: PicBoxZoom.csproj , 在主工程 "生成前事件命令行" 里设置:
MSBuild ..\..\..\OpenDirPath\PictBoxZoom\PicBoxZoom.csproj /p:Configuration=Debug
这样每次编译主工程就会自动编译控件工程, 而且不修改控件代码也不会浪费太多时间编译.
当控件代码已经定型, 你不想每次修改主工程都自动编译控件时, 注释这个命令行就可以了.DOS命令行的注释用REM, 把上行的 MSBuild 变成 REM MSBuild XXX 即可.
生成"后"事件 常用于打包setup文件.原则上打包成setup的文件都放在一个"干净"目录里, 避免不合适的config文件或版本错误的dll和exe被打包, 但是exe在开发阶段常被修改, 这时可以每次修改后自动拷贝到"干净"目录里供安装程序打包.