ASP.NET CORE 2.1预览“Csc”任务不支持“SharedCompilationId”参数

时间:2018-03-08 12:41:15

标签: macos visual-studio asp.net-core-mvc asp.net-core-2.0

我正在尝试使用Mac OSX上单独的类库中的视图运行项目,如下文

中所述

https://blogs.msdn.microsoft.com/webdev/2018/03/01/asp-net-core-2-1-razor-ui-in-class-libraries/

问题是我无法在Mac OS上使用Visual Studio Community 7.4构建类库项目。

项目使用命令行(donet build)构建没有问题,但是当我尝试使用Visual Studio构建它时会抛出两个错误:

  

Python 3.6.4+ (default, Feb 12 2018, 08:25:03) [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import pyatspi >>> pyatspi.__path__ ['/usr/lib/python3/dist-packages/pyatspi']

     

/usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.aspnetcore.razor.design/2.1.0-preview1-final/build/netstandard2.0/Microsoft.AspNetCore.Razor.Design.Compilation.targets(10,10): Error MSB4064: The "SharedCompilationId" parameter is not supported by the "Csc" task. Verify the parameter exists on the task, and it is a settable public instance property. (MSB4064)

当我将RazorCompileOnBuild更改为false或从Content Build项目中删除内容时,编译没有错误。

5 个答案:

答案 0 :(得分:39)

转到Nuget控制台并添加:

Install-Package Microsoft.Net.Compilers -Version 2.8.2

您将不再遇到上述错误。

答案 1 :(得分:4)

我在构建服务器上有此问题,但在本地没有。

解决方案: 在生成服务器上安装更新的Visual Studio。就我而言2017.15.4

答案 2 :(得分:2)

我发现您可以通过两种方式解决此问题。

解决方案1 ​​

Microsoft.Net.Compilers编译器软件包添加到项目中。

解决方案2

使用命令行构建项目。 dotnet build

答案 3 :(得分:1)

In my case, I had installed the .NET Core 2.1 SDK, but not the runtime.

Strange how Microsoft don't include the runtime in the SDK.

答案 4 :(得分:1)

如果遇到此问题,您需要执行三个步骤:

  1. 确保Nuget包和目标框架匹配。
  2. 确保已安装引用的runtimesdk
  3. 确保Visual Studio是最新的。