“Microsoft.CodeAnalysis.BuildTasks.Csc”任务无法加载

5

我正在尝试将一个新创建的asp.net 4.6 web项目发布到Azure web应用程序,并收到以下错误:

remote: D:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets(316,9): error MSB4062: 无法从程序集D:\home\site\repository\packages\Microsoft.Net.Compilers.1.0.0\build..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll中加载"Microsoft.CodeAnalysis.BuildTasks.Csc"任务。无法加载文件或程序集'Microsoft.Build.Utilities.Core,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其某个依赖项。系统找不到指定的文件。请确认声明正确,程序集及其所有依赖项都可用,并且该任务包含实现Microsoft.Build.Framework.ITask的公共类。[D:\ home \ site \ repository \ WebApp \ WebApp.csproj]

通过Visual Studio 2015在我的本地计算机上构建一切正常。我认为Azure Web应用程序在发布时都已准备好支持VS 2015 RTM,但似乎它们没有安装MSBuild 14.0。是否有解决方法或此问题的路线图?

3个回答

15

以下是我的解决方法。使用 Nuget 包管理器,如果已经引用了以下两个包,请删除它们:

  1. Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  2. Microsoft.Net.Compilers

之后重新构建项目即可。这样可以确保编译过程不会尝试使用特定的编译 exe。点击这里查看与上一版本的差异


更新以上的软件包后,问题得到了解决。 - oyaebunterkrah
已删除 Microsoft.Net.Compilers 帮助。 - Leszek P

3
在我的情况下,我需要编辑我的.csproj文件并查找以下行并将其删除。
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />

现在一切都很好,

1
Azure Web Apps目前还不支持ASP.NET 4.6,但正在努力开发中,请保持关注。

1
是的。我不得不在.csproj文件中更改ToolsVersion属性为12.0,并在其他地方修复一些小问题,但它运行良好。我实际上并没有使用任何4.6特定的功能。 - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接