MSBuild: Add additional files to compile without altering the project file
- by Craig Norton
After looking around I can't find a simple answer to this problem.
I am trying to create an MSBuild file to allow me to easily use SpecFlow and NUnit within Visual Studio 2010 express.
The file below is not complete this is just a proof of concept and it needs to be made more generic.
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildDependsOn>
BuildSolution;
SpecFlow;
BuildProject;
NUnit;
</BuildDependsOn>
</PropertyGroup>
<PropertyGroup>
<Solution>C:\Users\Craig\Documents\My Dropbox\Cells\Cells.sln</Solution>
<CSProject>C:\Users\Craig\Documents\My Dropbox\Cells\Configuration\Configuration.csproj</CSProject>
<DLL>C:\Users\Craig\Documents\My Dropbox\Cells\Configuration\bin\Debug\Configuration.dll</DLL>
</PropertyGroup>
<Target Name="Build" DependsOnTargets="$(BuildDependsOn)">
</Target>
<Target Name="BuildSolution">
<MSBuild Projects="$(Solution)" Properties="Configuration=Debug" />
</Target>
<Target Name="SpecFlow">
<Exec Command="SpecFlow generateall $(CSProject)" />
</Target>
<Target Name="BuildProject">
<MSBuild Projects="$(CSProject)" Properties="Configuration=Debug" />
</Target>
<Target Name="NUnit">
<Exec Command='NUnit /run "$(DLL)"' />
</Target>
The SpecFlow Task looks in the .csproj file and creates a SpecFlowFeature1.feature.cs.
I need to include this file when building the .csproj so that NUnit can use it.
I know I could modify (either directly or on a copy) the .csproj file to include the generated file but I'd prefer to avoid this.
My question is: Is there a way to use the MSBuild Task to build the project file and tell it to include an additional file to include in the build?
Thank you.