Tuesday, November 13, 2012

Microsoft.Commom.targets Warning# 983 The reference assemblies for Framework ".NET Framework, Version=X.x" were not found

Following is the exact error message:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (983): The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.

This occurs when your Build server does not have Visual Studio 2012 (which ideally should not be anyway), and it has only .NET Framework 4.5, and no Framework 4.5 SDK or .NET Framework Framework Targetting-Pack is not installed.

In order to get rid of these warning messages, you have two options:
1) Install SDK or Targetting-Pack for .NET Framework 4.5. But they are considerably large in size.
2) The other option is to copy following folder from your development machine to your TFS build machine.

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5

Doing this should fix the issue, and the warning messages will be disappeared.

10 comments:

  1. Copying the folder from my development machine was the only thing that worked.

    Thanks

    ReplyDelete
  2. Thanks that saved me a good bit of time and frustration.

    ReplyDelete
  3. Thanks - was dreading following other vague instructions on what to install on the server. This fixed it fast and good!

    ReplyDelete
  4. Perfect. Thank you very much!

    ReplyDelete
  5. I copied the folder to the build server and I am still getting the same warnings. I have restarted the controller and the agent on the build server. Do I need to copy the folder to the TFS server which I don't have access to or build server is sufficient here. I am using TFS 2012.

    ReplyDelete
  6. Hi Nirman
    Today I've got the same situation as you describe – I made a build for a project I’m developing with VS 2012 and there was the same warning. I used the second option you suggest. This worked fine for me too. However I have a discussion with my colleague who intends this will damage the builds for projects that are developed with VS 2010. Do you think this could be possible? Or how could I reason with my colleague?
    Thank you very much
    Mariya

    ReplyDelete
  7. Thank you! Thank you! Thank you!

    ReplyDelete
  8. Thanks, this worked like a charm.

    ReplyDelete

Thanks for visiting my blog.
However, if this helped you in any way, please take a moment to write a comment.

Thanks
Nirman