Windows Nano Server / Servercore in .Net6はSystem.Drawingをサポートしていません

This article was translated from English: Does it need improvement?
Translated
View the article in English

次のエラーメッセージが表示されていますか?

  • Chromeアセンブリの1つの読み込みエラー (libcef.dll)
  • Chrome デプロイメント失敗 (libcef.dllの読み込み中にエラーが発生しました) (203)

    これは、System.DrawingがWindows Nano ServerやWindows Servercoreに含まれていないためです。 (.Net6).

    公式の .NET イメージは Nano Server をベースにしています。

    この問題を回避するために、次のいずれかの方法を提案します:

  1. self-contained としてプロジェクトを構築してデプロイする (クリックして 詳細情報 こちらのオプションで)

  2. 次のプロパティを .csproj ファイルに変更することで、Linux ベースのコンテナイメージに切り替えます:
<DockerDefaultTargetOS>Windows</DockerDefaultTargetOS>
      to  
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
XML

次にLinux依存関係を追加できます:

RUN apt update \     && apt install -y libgdiplus libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1

(上記の依存関係はDebian 11向けですが、Ubuntu、CentOs、Amazon Linuxなどの具体的な依存関係も参照できます。 これ)