自己完結型が指定されていない場合の RuntimeIdentifier 警告

プロジェクト ファイルで RuntimeIdentifier を指定した場合、または dotnet-r オプションを使用した場合は、既定で .NET SDK によって自己完結型アプリケーションとして出力がビルド、発行、実行されます。 RuntimeIdentifier を指定しない場合は、既定でフレームワークに依存するアプリケーションになります。 この変更では、アプリケーションが自己完結型かどうかを指定しないで RuntimeIdentifier を指定した場合の新しい警告 (NETSDK1179) が導入されます。

導入されたバージョン

.NET 6 RC 1

以前の動作

以前のバージョンでは、RuntimeIdentifier を指定すると、アプリケーションはフレームワーク依存アプリケーションから自己完結型アプリケーションに自動的に変更されます。

新しい動作

.NET 6 では、アプリケーションが自己完結型かどうかを指定せずに RuntimeIdentifier を指定すると、次の警告が表示されます。

warning NETSDK1179: One of '--self-contained' or '--no-self-contained' options are required when '--runtime' is used. (警告 NETSDK1179: '--runtime ' を使用する場合は、''--self-contained' または '--no-self-contained' のいずれかのオプションが必要です。)

たとえば、次のコマンドでは警告が生成されます。

dotnet publish -r win-x86

カテゴリの変更

この変更はソースの互換性に影響を与えることがあります。

変更理由

RuntimeIdentifier を指定しない場合は、既定でフレームワークに依存するアプリケーションが生成されます。 この既定の動作により、多くのお客様が混乱しました。 この警告を追加する目的は次のとおりです。

  • 既定でフレームワーク依存アプリになる動作の変更をお客様に警告します。
  • ビルドするアプリケーションの種類を明示的に選択することをお客様に奨励します。
  • .NET 7 で可能性のある既定でフレームワーク依存になる動作の変更に、お客様が準備できるようにします。
  • プロジェクト ファイルで SelfContained にブール値を指定します。
  • または、ビルドまたは発行コマンドに対する値に --self-contained を追加します。

影響を受ける API

N/A

関連項目