8

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

此外,当我安装 VS 2013 Preview,将我的项目升级到 .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

4 回答 4

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">
于 2013-07-17T09:33:01.643 回答
11

Visual Studio 2012 支持构建 .NET Framework 4.5.1 应用程序。您需要安装Visual Studio 2013 PreviewWindows SDK for Windows 8.1 Preview才能在与 Visual Studio 相同的计算机上获取 .NET Framework 4.5.1 Preview Targeting Pack 2012 使用 .NET Framework 4.5.1 预览版构建应用程序。

谢谢
Nithya [MSFT]

于 2013-07-22T19:56:58.293 回答
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 Preview 相关的答案在 VS 2012 中没有出现,那就太好了。

和自己聊天很愉快。

于 2013-07-12T07:10:53.897 回答
2

这是 Microsoft 就该主题撰写的博客文章。

在 Visual Studio 2012 中使用 .NET Framework 4.5.1 Preview 构建应用程序

于 2013-08-09T18:16:57.803 回答