I've upgraded a solution to use MSBuild 4.0. It compiles but I get lots of warnings, for example:
"T:\projects\Castle.Core\buildscripts\Build.proj" (Package target) (1) -> "T:\projects\Castle.Core\Castle.Core-vs2008.sln" (Build target) (2:2) -> "T:\projects\Castle.Core\src\Castle.DynamicProxy.Tests\Castle.DynamicProxy.Tests-vs2008.csproj" (default target) (3:2) -> D:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(847,9): warning MSB3644: The reference assemblies for framework ".NETFrame开发者_Go百科work,Version=v4.0.30319" 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. [T:\projects\Castle.Core\src\Castle.DynamicProxy.Tests\Castle.DynamicProxy.Tests-vs2008.csproj]
How can I fix these warnings? It is related to .NET 4.0 Multitargeting pack or SDK, but there's no SDK for .NET 4.0 AFAIK and Multi-Target pack can not be installed separatly.
Any ideas would be appreciated.
Have you tried looking at the output of the 'ResolveAssemblyReferences' task in MSBuild with diagnostic level debugging turned on ('/v:diag'). This should tell you what directories the build process is searching to find the dlls. Although, if the build process can't find it, I'm kind of surprised that the IDE doesn't show an issue with that reference in the project.
There is a .Net Framework SDK, but its also part of the Windows SDK. The version that shipped with VS2010 is 7.0A, and the latest is 7.1. There might be a path/reference conflict that was introduced by the installers if you've installed one or both separately.
Apparently a known issue.
Did you install .NET 4 Client Profile or Full?
精彩评论