Quantcast
Channel: Visual Studio Integrate forum
Viewing all articles
Browse latest Browse all 4410

VSPackage - How do I specify my own build functionality?

$
0
0

I'm new to VSPackage development and I've been going around in circles searching MSDN and these forums for answers.

Basically, I want to hook into the VS build process in order to provide my own build functionality. This in turn will call multiple external command line utilities, determine whether the build is up to date etc etc. I used to do this by specifying a MAKE type project and then calling an external tool that does all of this. But now I want to put all of this functionality into the VSPackage to take advantage of much better integration with VS for things like error reporting, up-to-date status of the files, custom commands, custom configuration etc etc.

However I can't figure out how to implement this. I know it has something to do with IVsBuildableProjectCfg but the MSDN documentation is very sparse. My initial thought was to have a MAKE type project (with "rem" in all three command lines) and then respond to the OnBuildBegin event to start the build and only return when it has completed. This is obviously not the correct way to do this because implementing IVsBuildableProjectCfg seems like the way to go.

Can someone give me a high-level overview of how this should be done?

Thanks in advance for any help with this.

EDIT: BTW, right now the best solution I can come up with is to stick with the Makefile configuration type that calls an external tool, but have that tool and my VSPackage communicate via WCF. It obviously works but seems redundant as I'd like to move all of the functionality into VSPackage.

However I should also mention a slight complication... In this project I also rely on another plugin thatrequires the configuration type to be Makefile (that plugin is used for debugging, while mine is used for building). So I would need to keep the configuration type as Makefile and still implement my own custom IVsBuildableProjectCfg. Not sure if that would be possible.


Viewing all articles
Browse latest Browse all 4410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>