Local Setup

Clone the code

Clone the repository with submodules

git clone –recurse-submodules https://github.com/techtalk/SpecFlow.git

You need to clone the repository with submodules, because the code for the SpecFlow.TestProjectGenerator is located in another repository (https://github.com/techtalk/SpecFlow.TestProjectGenerator). The reason is, that this code is shared with other projects

set environment variables

MSBUILDDISABLENODEREUSE

You have to set MSBUILDDISABLENODEREUSE to 1. Reason for this is, that SpecFlow has an MSBuild Task that is used in the TechTalk.SpecFlow.Specs project. Because of the using of the task and MSBuild reuses processes, the file is loaded by MSBuild and will then lock the file and break the next build.

This environment variable controls the behaviour if MSBuild reuses processes. Setting to 1 disables this behaviour.

See https://github.com/Microsoft/msbuild/wiki/MSBuild-Tips-&-Tricks for more info about it.