Scheme of vsSolutionBuildEvent projects
It describes the structure of existing components, illustrates scheme of their work and also shows how it works for Visual Studio Command-Line, MSBuild tools, etc.
Basic scheme for v0.12+
- Implements basic model of events with IVsSolutionEvents and IVsUpdateSolutionEvents2
- Works with priority processing (i.e. with 'Advise..' methods instead of simple subscription with Events from DTE). See MSDN for more details.
- Distributed as .vsix for IDE Visual Studio.
The vsSolutionBuildEvent API - is the API level for work with main library. In general, the vsSolutionBuildEvent implements the Bridge specifications and allows access for most features for any other applications such as the CI.MSBuild, Devenv etc.
The vsSolutionBuildEvent Provider - is also as a part of API level, however this unit is intended for a quick standard work with main library. Contains loader etc.
client.vssbe.dll it's optional variant for work with events from our core library. How to create and use.
The vsSolutionBuildEvent Devenv Command-Line - is a wrapper and translator of the model of events for main library to support the command-line of Visual Studio.
Why is so strange ?
You can also see our source code if you want to reproduce this trick for your any other plugin. Read the documentation in links above.
- vsSolutionBuildEvent CI.MSBuild - is a more powerful and flexible tool in comparison with Devenv. Because this works with the Microsoft Build Tools.
It is also a wrapper but a little harder.. For work with basic model of events the Visual Studio need a some converting/adaptation of all available units for our main library. Therefore, we should convert this for translations to main library.
This is not Add-Ins and this requires no any additional installation for any your environments. Simply configure and use this as stated in the documentation. You can also see real sample of work on our project here
Full version with standard libraries - vsSBE.CI.MSBuild
The CI.MSBuild is also works via Provider and also requires main library. All this can be selected and configured manually, but you can also use full version with standard libraries - vsSBE.CI.MSBuild - just get and use…
Script-engines, C# compiler, .target features - all this as part of user-script layer to work with all what you need at runtime, for example, affecting on the build processes and other.
All this above can be used in some other your tools via API & Provider. You can, for example, use a custom model of events for additional build and/or provide additional GUI for the settings/commands/scripts and other…
Model of events
In general, the vsSolutionBuildEvent works on the event model, i.e.:
- There is an unified event (from Visual Studio, MSBuild tools, etc.)
- And there is any actions, that to be executed…
Basic work is a: