How to configure MSBuild to locate the F# build targets
04 October 2013
When the AutoFixture.AutoFoq build run on the CodeBetter CI server for the first time, the following error message appeared:
MSB4057: The target “Build” does not exist in the project.
That was strange since the build run successfully in a development workstation with VS 2012 and .NET 4.5 installed.
Solution (CI Server)
By moving the project to a different agent, with .NET 4.5 installed, the problem was solved on the CodeBetter CI server.
However, the same issue was reported again - this time in a development workstation with VS 2013 RC.
Adam Chester has provided a solution which seems to work pretty well for VS 2012, VS 2013, and the CodeBetter CI server.
The most important changes are shown below. You can also see the diff as an image here:
A note for VS 2012 users
While VS 2013 RC applies these changes automatically for F# projects, in VS 2012 the project file must be tweaked manually:
###Step 1 - Append:
###Step 2 - Find and Replace:
###Step 3 - Find and Replace:
The F# build targets, compiler, and run time should be located successfully now.