web-dev-qa-db-ja.com

ローカライズされたMicrosoft.CodeAnalysis。*。resources.dllファイルがASP.NET Coreによって公開されないようにする方法

ASP.NET Core 3.0プロジェクトを公開すると、表示されている4つのアセンブリがこれらの各フォルダーにあるローカライズされたフォルダーがいくつか表示されます。これらのフォルダとファイルが含まれる理由がわかりません。どのパッケージもCodeAnalysisパッケージを参照していません。

追加した <PreserveCompilationContext>false</PreserveCompilationContext>はcsprojファイルにありますが、役に立ちませんでした。それらを除外する方法はありますか?

enter image description here

enter image description here

6
Tony_Henrich

私の場合、これらのローカライズされたフォルダーのソースは、パッケージMicrosoft.AspNetCore.Mvc.Razor.RuntimeCompilationからのものでした。 Microsoft.CodeAnalysis.Razorに依存しています。パッケージの目的について詳しくは、こちらをご覧ください。 https://docs.Microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.1

パッケージを利用しようとするときに、アセットを単に除外することはできません。私の回避策は、プロジェクトがデバッグモードのときは常に条件付きでパッケージ参照を含めることでした。 条件付きパッケージ参照

次に、#ifプリプロセッサディレクティブを使用して、かみそりランタイムコンパイルを有効にするコードを条件付きで実行しました。 プリプロセッサディレクティブかみそりランタイムコンパイル

注:ビルド後に削除されたフォルダーを表示するには、binフォルダーを削除する必要がある場合があります。また、正しいソリューション構成でビルドしていることを確認してください。

この正確なシナリオを説明するGithubの問題を見つけることができましたが、残念ながら解決されませんでした。 https://github.com/dotnet/extensions/issues/2247

0
kangaroosky