Below only about differences between vsCommandEvent and vsSolutionBuildEvent if they exists. Read first:
Yes, it's also possible for vsCommandEvent, it means - why not…
The vsCommandEvent may work with commands from VS, so you can catch command when started the Build or Rebuild, Clean etc. for all solution as for all projects at once or similar…1
Moreover, you can handle of versioning for most operations of Visual Studio. Simply try as you need.
In general you should configure commands, and use this (for example) the documentation - Automatic Version Numbering
And also here you will see commands for Build, Rebuild, Clean operations for solution.