2
votes

I am doing a proof of concept migrating TFS 2008 to TFS 2012. Standing up TFS 2012 wasn't very difficult but I am having a bit of trouble standing up a new Build Server. After beating my head off a wall it appears that MSBuild is building my projects out of order which is wrecking the build entirely. Now I read the Microsoft article that said this was corrected in NETFX4.5 but both of my servers have 4.5 installed and this issue is still happening. In MSBuild 3.5 this issue is nonexistent. The error I am getting specifically is: CS0006: Metadata File [assembly] could not be found.

If I build the solution on the build server directly in VS2008 the projects in question build fine. I do get a couple of exceptions when I do the build related to file names being to long but this is long after I have actually built the projects that offend MSBuild. Further I can build just the projects in question cleanly.

I do have a couple of custom tasks but they are of little consequence.

Is there anyway to run builds against MSBuild 3.5 instead of MSBuild 4? Or is there an easy way to correct this problem so that I can use MSBuild 4?? I am using the UpgradeTemplate in TFS2012. Thanks!

1
Can you give more detail? Does the project build correctly from the Visual Studio IDE? Which build template are you using? Are you using custom tasks, etc.?John Saunders
Hi John. I am using the Upgrade Template, the Solution does build (see added explanation above), and I do have some custom tasks but they are of little consequence.dparsons
If the solution builds locally, I would recommend trying the newer build template. It won't have your custom tasks, but it would be a good start from which to customize.John Saunders

1 Answers

0
votes

Two things I would check

  1. Verify that the assembly listed as missing was actually built and is present
  2. If that was true, verify that the dll listed as missing is marked as a dependency of the project that is currently throwing out the CS006 error (ensuring it will be compiled first)