首先让我为错误添加一些上下文,我已经安装了.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的东西,还有什么想法?
由于
答案 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 Preview或Windows 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)