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.
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.
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
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
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.
Wenn Sie mit diesem Problem konfrontiert sind, gibt es drei Schritte, die Sie ausführen müssen: