tl;dr story:
Just add HintPath node to Microsoft.Web.Infrastructure Reference node that points to where NuGet package is.
The full story:
I just would like to share with you problem I ran into. Basically we have a ASP.NET project that I updated with some NuGet packages. One of these packages installed as dependency Microsoft.Web.Infrastructure library. As usually, everything worked on my machine (dev box with VS 2013 and all other goods).
But the build failed on our CI server. With error like this (since we run German language mutation of Windows server, msbuild.exe was also in German) :
So, I checked if the package is installed correctly and it was :
Folder in packages subfolder was present :
I looked where the reference is pointing to and it was strange :
it should point to packages folder like this :
OK, time to check the .csproj file.
Antlr reference looked like this :
however Microsoft.Web.Infrastructure entry was missing the HintPath node, so I fixed it like this :
and after loading full solution, stuff started to work again :
and here we can see happy msbuild.exe in its natural habitat :
Hope this helps.
BTW similar (but different) problem was solved here : http://stackoverflow.com/questions/13149851/could-not-load-file-or-assembly-microsoft-web-infrastructure
Hope this helps.