次の方法で共有


.NET .NET Aspire 診断の概要

.NET .NET Aspire のいくつかの API は、ExperimentalAttributeで装飾されています。 この属性は、API が試験段階であり、将来のバージョンの .NET.NET Aspireで削除または変更される可能性があることを示します。 この属性は、まだ安定しておらず、運用環境での使用に適していない可能性がある API を識別するために使用されます。

ASPIREACADOMAINS001

.NET .NET Aspire 9.0 では、次のいずれかの拡張メソッドを使用してコンテナー アプリ リソースをカスタマイズする機能が導入されています。

これらの方法のいずれかを使用すると、 Azure Developer CLI (azd) はカスタム ドメインを保持できなくなります。 代わりに、ConfigureCustomDomain(ContainerApp, IResourceBuilder<ParameterResource>, IResourceBuilder<ParameterResource>) メソッドを使用して、.NET.NET Aspire アプリ ホスト内でカスタム ドメインを構成します。 ConfigureCustomDomain(...) 拡張方法は試験的です。 コンパイラ エラー/警告を抑制するには、次のコードを使用します。

ASPIREACADOMAINS001診断を抑制するには、次の診断 ID から [コピー] ボタンを選択し、「診断を抑制する」を参照してください。

ASPIREACADOMAINS001

ASPIREHOSTINGPYTHON001

.NET Aspire では、Python 実行可能ファイルまたはアプリケーションを .NET Aspire アプリ ホストに追加する方法を提供します。 この API の形状は将来変化することが予想されるため、試験的です (ExperimentalAttribute)。 コンパイラ エラー/警告を抑制するには、次のコードを使用します。

ASPIREHOSTINGPYTHON001診断を抑制するには、次の診断 ID から [コピー] ボタンを選択し、「診断を抑制する」を参照してください。

ASPIREAZURE001

ASPIRECOSMOSDB001

.NET Aspire には、 Cosmos DBLinux ベースの (プレビュー) エミュレーターを使用する方法が用意されています。 このエミュレーターはプレビュー段階であり、この API の形状は将来変更される予定であるため、試験段階 (ExperimentalAttribute)。 コンパイラ エラー/警告を抑制するには、次のコードを使用します。

ASPIRECOSMOSDB001診断を抑制するには、次の診断 ID から [コピー] ボタンを選択し、「診断を抑制する」を参照してください。

ASPIRECOSMOSDB001

ASPIREPUBLISHERS001

.NET .NET Aspire では、バージョン 9.2 以降の パブリッシャー の概念が導入されました。 パブリッシャーは、デプロイ プロセスにおいて重要な役割を果たし、分散アプリをデプロイ可能な資産に変換できるようにします。 これにより、ツールを操作するための発行 マニフェスト を生成する中間手順が軽減され、代わりに開発者が C# で意図を直接表現できるようになります。

パブリッシャーは現在プレビュー段階であり、API は試験段階 (ExperimentalAttribute) です。 コンパイラ エラー/警告を抑制するには、次のコードを使用します。

ASPIREPUBLISHERS001診断を抑制するには、次の診断 ID から [コピー] ボタンを選択し、「診断を抑制する」を参照してください。

ASPIREPUBLISHERS001

ASPIREAZURE001

.NET Aspire Azure ホスティング統合はパブリッシャーに付属するようになりました。 AddAzurePublisher API のいずれかを使用している場合は、API が試験段階であることを示すコンパイラ エラー/警告が表示されることがあります。 これは、API がまだプレビュー段階であり、この API の形状が将来変更される予定であるため、予想される動作です。

ASPIREAZURE001診断を抑制するには、次の診断 ID から [コピー] ボタンを選択し、「診断を抑制する」を参照してください。

ASPIREAZURE001

診断を抑制する

このドキュメントでは、次のいずれかの方法を使用して診断を抑制できます。

  • アセンブリ、クラス、メソッド、行などに SuppressMessageAttribute を追加します。
  • プロジェクト ファイルの NoWarn プロパティに診断 ID を含めます。
  • コードでプリプロセッサ ディレクティブを使用します。
  • .editorconfig ファイルで診断重大度を構成します。

.NET プロジェクトで診断を抑制するための一般的なパターンがいくつかあります。 最適な方法は、コンテキストと特定の診断によって異なります。 選択に役立つクイック ガイドを次に示します。

抑制メッセージ属性で抑制

SuppressMessageAttributeは、クラスやメソッドなどの特定のコード要素に直接関連付けられた、文書化されたターゲット抑制が必要な場合に最適です。 他のほとんどの場所で有効なルールに対して意図的な例外を作成すると、それが輝きます。 この属性は、影響を受けるコードの近くに抑制を保持し、レビュー担当者と将来の保守担当者が根拠を理解するのに役立ちます。 分離されたケースに対してはクリーンなソリューションですが、過度に使用されている場合はコードが乱雑になることがあります。また、広範囲にわたる抑制や一括抑制には最適な選択肢ではありません。

SuppressMessageAttributeを使用してASPIREEX007診断を抑制するには、次の例を検討してください。

アセンブリ レベルの抑制:

// Typically placed in AssemblyInfo.cs, GlobalUsings.cs, or any global file.
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(
    "Aspire.Example",                      // Category
    "ASPIREEX007:AspireExampleDiagnostic", // CheckId and optional rule title
    Justification = "This warning is not applicable to our context.")]

クラス レベルの抑制:

[System.Diagnostics.CodeAnalysis.SuppressMessage(
    "Aspire.Example",
    "ASPIREEX007:AspireExampleDiagnostic",
    Justification = "This warning is not applicable to our context.")]
public class ExampleClassThatConsumesTheOffendingAPI
{
    // Class implementation
}

メソッド レベルの抑制:

public class ExampleClass
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage(
        "Aspire.Example",
        "ASPIREEX007:AspireExampleDiagnostic",
        Justification = "This warning is not applicable to our context.")]
    public void ExampleMethodThatConsumesTheOffendingAPI()
    {
        // Method implementation
    }
}

重要

プロパティ、フィールド、またはパラメーターで診断がトリガーされる場合は、 SuppressMessageAttributeを使用して直接適用することもできます。

プロジェクト ファイル内で抑制する

プロジェクト ファイルで NoWarn プロパティを使用することは、プロジェクト全体で診断を抑制する必要がある場合に最適です。 これは、診断がシナリオに関係ない場合や、既知の誤検知を処理する場合に役立ちます。 これは、コードに触れることなく診断を無音にするシンプルで中心的な方法です。 ただし、プロジェクト ファイルを検査しない限り、開発者は診断が抑制されるという可視性がないため、意図的な例外の追跡や抑制の背後にある理由の特定が困難になる可能性があります。

プロジェクト ファイルの ASPIREEX007 診断を抑制するには、次のコードを .csproj ファイルに追加します。

<PropertyGroup>
  <NoWarn>$(NoWarn);ASPIREEX007</NoWarn>
</PropertyGroup>

ヒント

前の XML の $(NoWarn) プロパティは、抑制された警告の既存の一覧に診断 ID を追加するために使用されます。 これにより、既に配置されている他の抑制を誤って削除しないようにします。

プリプロセッサ ディレクティブによる抑制

#pragma warning disableなどのプリプロセッサ ディレクティブは、メソッド本体やコード ブロックなど、特定のスコープ内できめ細かな抑制を提供します。 リファクタリング中に一時的な抑制が必要な場合や、変更できない、または変更したくない特定の行にルールが誤ってフラグを設定する場合に特に便利です。 影響を受けるコードだけを厳密にラップする機能により、このアプローチは強力になりますが、特にディレクティブが散在したり、時間をかけて忘れたりした場合に、コードの読み取りと保守が困難になる可能性があります。

プリプロセッサ ディレクティブを使用して ASPIREEX007 診断を抑制するには、次の例を検討してください。

ファイル レベルの抑制:

#pragma warning disable ASPIREEX007

public class ExampleClassThatConsumesTheOffendingAPI
{
    // Class implementation
}

細かい抑制:

public class ExampleClass
{
    public void ExampleMethodThatConsumesTheOffendingAPI()
    {
        #pragma warning disable ASPIREEX007
        // Code that triggers the diagnostic
        #pragma warning restore ASPIREEX007
    }
}

プリプロセッサ ディレクティブを使用して、特定のコード ブロックの診断を抑制できます。 これは、抑制の範囲をコードの特定のセクションに制限する場合に便利です。

詳細については、「 C# プリプロセッサ ディレクティブ」を参照してください。

エディター構成で抑制する

.editorconfig ファイルを使用した診断の抑制は、アナライザーの動作を大規模に適用または調整するのに最適です。 これにより、チームはソリューション全体またはディレクトリ/ファイル パターンごとに重大度レベルを標準化 (またはルールを無効にする) ことができます。 このメソッドは、コードベースから抑制をクリーンに保ち、チーム全体の規則を伝えるのに適しています。 ただし、少し不透明な場合があります。開発者は構成ファイルを調べたい必要があり、1 回限りのケースを処理するときに属性やプラグマの精度を提供しません。

.editorconfig ファイルでASPIREEX007診断を抑制するには、次のコードを追加します。

[*.cs]
dotnet_diagnostic.ASPIREEX007.severity = none

この構成は、プロジェクト内のすべての C# ファイルに適用されます。 セクション ヘッダーを調整して、特定のファイルまたはディレクトリにスコープを設定することもできます。

こちらも参照ください