以下の記事で説明されているように、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ビルド)でビルドしますが、Visual Studioでビルドしようとすると、2つのエラーがスローされます。
/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)
RazorCompileOnBuildをfalseに変更するか、コンテンツビルドプロジェクトからコンテンツを削除すると、エラーなしでコンパイルされます。
Nuget Consoleに移動して、次を追加します。
Install-Package Microsoft.Net.Compilers -Version 2.8.2
上記のエラーは発生しなくなります。
この問題はビルドサーバーで発生しましたが、ローカルでは発生しませんでした。
解決策:更新されたVisual Studioをビルドサーバーにインストールします。私の場合、2017.15.4
私が見つけたように、この問題は2つの方法で解決できます。
ソリューション1
追加 Microsoft.Net.Compilers
コンパイラはプロジェクトにパッケージ化します。
ソリューション2
コマンドラインを使用してプロジェクトをビルドします。 dotnet build
私の場合、.NET Core 2.1 SDKをインストールしましたが、ランタイムはインストールしていませんでした。
MicrosoftがSDKにランタイムを含めない方法は奇妙です。