We call Gulp from our `csproj` file as we're using Visual Studio 2013 for this project:

```xml
<Target Name="AfterBuild">
  <Exec Command="gulp" />
</Target>

```

However, since we're still crafting this fresh project, we often extend the `gulpfile.js` to include new packages. The dev will do e.g. `npm install gulp-util --save-dev` and write a new task, and all is well.

The developer then checks the `gulpfile.js` and `packages.json` in to our VCS. Currently:

* Teamcity has an extra build step `npm install`;
* Every developer has to run `npm install` manually;

Having to *remember* something that has to be done *manually* is not a great spot to be in. At one point we had this in our `csproj` file inside the `Task`...

```xml
 <Exec command="npm install" />

```

...just before the `gulp` exec, so developers could not "forget" to take this manual step. However, this can take one or even multiple seconds on each (re)build, which is annoying.

Is there any better way to solve this? How do you handle updates to `packages.json` in projects where large(ish) teams develop using Visual Studio?