web-dev-qa-db-ja.com

ASP.NET CORE 2.1 Previewの「SharedCompilationId」パラメーターは「Csc」タスクではサポートされていません

以下の記事で説明されているように、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に変更するか、コンテンツビルドプロジェクトからコンテンツを削除すると、エラーなしでコンパイルされます。

7
macfly

Nuget Consoleに移動して、次を追加します。

Install-Package Microsoft.Net.Compilers -Version 2.8.2

上記のエラーは発生しなくなります。

44
MrNams

この問題はビルドサーバーで発生しましたが、ローカルでは発生しませんでした。

解決策:更新されたVisual Studioをビルドサーバーにインストールします。私の場合、2017.15.4

4
Dave Loukola

私が見つけたように、この問題は2つの方法で解決できます。

ソリューション1

追加 Microsoft.Net.Compilersコンパイラはプロジェクトにパッケージ化します。

ソリューション2

コマンドラインを使用してプロジェクトをビルドします。 dotnet build

3
Charith

私の場合、.NET Core 2.1 SDKをインストールしましたが、ランタイムはインストールしていませんでした。

MicrosoftがSDKにランタイムを含めない方法は奇妙です。

1
Jessica Ward

この問題に直面した場合、3つのステップが必要です:

  1. NugetパッケージとTarget Frameworkが一致することを確認してください。
  2. 参照された runtime および sdk がインストールされていることを確認してください。
  3. Visual Studioが最新であることを確認します。
1
robopim