OSPlatform 属性の名前変更または削除
.NET 5 Preview 8 で実装された、MinimumOSPlatformAttribute
、RemovedInOSPlatformAttribute
、および ObsoletedInOSPlatformAttribute
属性が、削除または名前変更されました。
変更内容
.NET 5 Preview 8 で System.Runtime.Versioning 名前空間に次の属性が実装されました。
MinimumOSPlatformAttribute
RemovedInOSPlatformAttribute
ObsoletedInOSPlatformAttribute
.NET 5 Preview 8 のプロジェクトで、net5.0-windows
などのターゲット フレームワーク モニカーを使用し、.NET 5 の OS 固有のフレーバーをターゲットとしている場合、ビルドでは、アセンブリレベルの System.Runtime.Versioning.MinimumOSPlatformAttribute
属性が追加されます。
.NET 5 RC1 では、ObsoletedInOSPlatformAttribute
が削除され、MinimumOSPlatformAttribute
と RemovedInOSPlatformAttribute
が次のように名前変更されています。
Preview 8 での名前 | RC1 以降での名前 |
---|---|
MinimumOSPlatformAttribute |
SupportedOSPlatformAttribute |
RemovedInOSPlatformAttribute |
UnsupportedOSPlatformAttribute |
.NET 5 RC1 以降のプロジェクトで、net5.0-windows
などのターゲット フレームワーク モニカーを使用し、.NET 5 の OS 固有のフレーバーをターゲットとしている場合、ビルドでは、アセンブリレベルの SupportedOSPlatformAttribute 属性が追加されます。
変更理由
.NET 5 Preview 8 で API をサポートするプラットフォームの指定に、System.Runtime.Versioning に属性が実装されました。 これらの属性は、プラットフォーム固有の API がそれらの API をサポートしないプラットフォームで使用された場合に、ビルド警告を生成する、プラットフォーム互換性アナライザーによって使用されます。
.NET 5 RC1 では、プラットフォーム互換性アナライザーにプラットフォームを除外する機能が追加されています。 この機能を使用すると、API を OS プラットフォームで完全にサポートされていないものとしてマークできます。 この機能では、より適切な名前を使用するなど、属性への変更が求められています。 不要になった ObsoletedInOSPlatformAttribute
は、削除されています。
導入されたバージョン
5.0 RC1
推奨アクション
プロジェクトのターゲットを .NET 5 Preview 8 から .NET 5 RC1 に変更した場合、これらの変更によりビルド エラーまたは実行時エラーが発生することがあります。 たとえば、MinimumOSPlatformAttribute
を名前変更すると、エラーが発生する可能性があります。これは、この属性がビルド時にプラットフォーム固有のアセンブリに適用されますが、古い成果物では古い API 名を参照したままであるためです。
ビルド時のエラーの例:
- エラー CS0246:型または名前空間の名前 'MinimumOSPlatformAttribute' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
- エラー CS0246:型または名前空間の名前 'RemovedInOSPlatformAttribute' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
- エラー CS0246:型または名前空間の名前 'ObsoletedInOSPlatformAttribute' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
ランタイム エラーの例:
ハンドルされていない例外です。 System.TypeLoadException: アセンブリ 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' から型 'System.Runtime.Versioning.MinimumOSPlatformAttribute' を読み込むことができませんでした。
これらのエラーを解決するには:
MinimumOSPlatformAttribute
に対する参照を SupportedOSPlatformAttribute に更新します。RemovedInOSPlatformAttribute
に対する参照を UnsupportedOSPlatformAttribute に更新します。ObsoletedInOSPlatformAttribute
に対する参照を削除します。- 古いビルド成果物を削除して、自分のプロジェクトをリビルドします (またはクリーンおよびビルドを実行します)。
影響を受ける API
System.Runtime.Versioning.MinimumOSPlatformAttribute
System.Runtime.Versioning.ObsoletedInOSPlatformAttribute
System.Runtime.Versioning.RemovedInOSPlatformAttribute
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示