webentwicklung-frage-antwort-db.com.de

ASP.NET CORE 2.1 Preview-Parameter "SharedCompilationId" wird von der Task "Csc" nicht unterstützt

Ich versuche, das Projekt mit Ansichten in einer separaten Klassenbibliothek unter Mac OS X auszuführen, wie im folgenden Artikel beschrieben

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

Das Problem ist, dass ich das Klassenbibliotheksprojekt mit Visual Studio Community 7.4 unter Mac OS nicht erstellen kann.

Projekt wird ohne Probleme mit der Befehlszeile (Donet Build) erstellt, aber wenn ich versuche, es mit Visual Studio zu erstellen, werden zwei Fehler ausgegeben:

/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)

/usr/local/share/dotnet/sdk/NuGetFallbackFolder/Microsoft.aspnetcore.razor.design/2.1.0-preview1-final/build/netstandard2.0/Microsoft.AspNetCore.Razor.Design.Compilation.targets(5,5): Error MSB4063: The "Csc" task could not be initialized with its input parameters. (MSB4063)

Wenn ich RazorCompileOnBuild auf false ändere oder Inhalte aus der Inhaltserstellung entferne, wird das Projekt fehlerfrei kompiliert.

7
macfly

Gehen Sie zur Nuget Console und fügen Sie Folgendes hinzu:

Install-Package Microsoft.Net.Compilers -Version 2.8.2

Sie werden nicht mehr den oben genannten Fehler erhalten.

33
MrNams

Ich hatte dieses Problem auf dem Build-Server, aber nicht lokal.

Die Lösung: Installieren Sie das aktualisierte Visual Studio auf dem Build-Server. In meinem Fall 2017.15.4

4
Dave Loukola

Wie ich finde, können Sie dieses Problem auf zwei Arten lösen.

Lösung 1

Fügen Sie das Microsoft.Net.Compilers-Compiler-Paket zum Projekt hinzu.

Lösung 2  

Erstellen Sie das Projekt über die Befehlszeile. dotnet build 

2
Charith

In meinem Fall hatte ich das .NET Core 2.1 SDK installiert, nicht jedoch die Laufzeitumgebung.

Seltsam, wie Microsoft die Laufzeit nicht in das SDK einbezieht.

1
Jessica Ward

Wenn Sie mit diesem Problem konfrontiert sind, gibt es drei Schritte, die Sie ausführen müssen:

  1. Stellen Sie sicher, dass das Nuget-Paket und das Target Framework übereinstimmen.
  2. Stellen Sie sicher, dass die referenzierten runtime und sdk installiert sind.
  3. Stellen Sie sicher, dass Visual Studio auf dem neuesten Stand ist.
1
pimbrouwers