.NET 4.5.1 Visual Studio 2012中的预览支持

时间:2013-07-12 06:58:08

标签: .net visual-studio-2012 nuget nuget-package visual-studio-2013

首先让我为错误添加一些上下文,我已经安装了.NET 4.5.1预览版,我在VS 2012中注意到的第一件事是.NET 4.5.1没有列在可用的框架中。我不确定这是否是正确的行为,因为这只是升级到4.5所以我想VS 2012应该列出它。

当我安装VS 2013预览版,将我的项目升级到.NET 4.5.1并在VS 2012中打开解决方案时,新的.NET版本又重新出现,所以我不确定这是否是VS 2012中的错误?好的,现在我在VS 2012中有.NET 4.5.1,当我尝试构建项目时,我收到以下错误

Error   3   The task factory "CodeTaskFactory" could not be loaded from the assembly "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v4.0.dll". Could not load file or assembly 'file:///C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v4.0.dll' or one of its dependencies. The system cannot find the file specified.  D:\Projects\MyProject\Master\Source\.nuget\nuget.targets    71  9   MyProject.Core.Modules

NuGet.targets报告了行

<SetEnvironmentVariable EnvKey="VisualStudioVersion"
EnvValue="$(VisualStudioVersion)" Condition=" '$(VisualStudioVersion)'
!= '' AND '$(OS)' == 'Windows_NT' " />

在我看来,由于某种原因,VS 2012无法解析路径或程序集,所以我不确定我是否应该在NuGet.targets中修复某些东西,或者它是Visual Studio的东西,还有什么想法?

由于

4 个答案:

答案 0 :(得分:17)

我解决了在.csproj文件中更改ToolsVersion的问题。

来自

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

答案 1 :(得分:11)

Visual Studio 2012支持构建.NET Framework 4.5.1应用程序。您需要安装Visual Studio 2013 PreviewWindows SDK for Windows 8.1 Preview才能在同一台计算机上获取.NET Framework 4.5.1预览定位包作为Visual Studio 2012,使用.NET Framework 4.5.1预览构建应用程序。

感谢
Nithya [MSFT]

答案 2 :(得分:7)

要解决此问题,我必须升级 NuGet.targets 并更改以下两行

<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">

<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll">
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll">

另外,在安装VS 2013之前,获得与.NET 4.5.1预览相关的答案并不会出现在VS 2012中。

和我聊天很好。

答案 3 :(得分:2)

这是微软就此主题撰写的博客文章。

Building apps with the .NET Framework 4.5.1 Preview in Visual Studio 2012