dotnet-upgrade について
.NET プロジェクトのアップグレード計画を支援するスキルです。フレームワークや依存関係の評価から検証、リリース文書まで、プロンプトとチェックリストで複数プロジェクトやパイプラインの作業を整理します。
主な機能
- 01プロジェクトのフレームワークと依存関係の評価
- 02アップグレード順序と段階的な計画
- 03ターゲットフレームワーク選定とコードの近代化
- 04NuGet の互換性と競合の確認
- 05CI/CD とテスト検証の計画
- 06破壊的変更とリリース文書
活用シーン
- 01複数プロジェクトのソリューションのアップグレード計画
- 02パッケージとフレームワークの互換性確認
- 03CI 検証とデプロイ前チェックの準備
- 04移行作業とアップグレード結果の追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill dotnet-upgradeインストール後、Claude Code で/dotnet-upgradeを入力して読み込まれたか確認します。
詳細
プロジェクトの検出と評価
-
name: "プロジェクト分類分析" prompt: "ソリューション内のすべてのプロジェクトを特定し、種類 (
.NET Framework、.NET Core、.NET Standard) ごとに分類します。各.csprojの現在のTargetFrameworkと SDK の使用状況を分析します。" -
name: "依存関係の互換性レビュー" prompt: "外部および内部の依存関係について、フレームワークの互換性をレビューします。依存関係グラフの深さに基づいて、アップグレードの複雑さを判断します。"
-
name: "レガシーパッケージの検出" prompt: "
PackageReference形式への移行が必要なレガシーなpackages.configプロジェクトを特定します。"
アップグレード戦略と順序付け
-
name: "プロジェクトのアップグレード順序" prompt: "依存関係の少ないコンポーネントから多いコンポーネントへと、プロジェクトのアップグレード順序を推奨します。API や Azure Function の移行の前に、クラスライブラリのアップグレードを切り離す方法を提案します。"
-
name: "段階的戦略の計画" prompt: "ロールバックチェックポイントを含む段階的なアップグレード戦略を提案します。プロジェクト構造に基づいて、Upgrade Assistant または 手動アップグレード の使用を評価します。"
-
name: "進捗追跡の設定" prompt: "すべてのプロジェクトにわたるビルド、テスト、デプロイの準備状況を追跡するためのアップグレードチェックリストを生成します。"
フレームワークのターゲット設定とコード調整
-
name: "ターゲットフレームワークの選択" prompt: "各プロジェクトに適切な
TargetFramework(例:net8.0) を提案します。非推奨の SDK またはビルド構成をレビューして更新します。" -
name: "コードのモダナイズ分析" prompt: "モダナイズが必要なコードパターン (例:
WebHostBuilder→HostBuilder) を特定します。非推奨の .NET API およびサードパーティライブラリの代替を提案します。" -
name: "非同期パターンへの変換" prompt: "パフォーマンスとスケーラビリティを向上させるため、適切な箇所で同期呼び出しを非同期に変換することを推奨します。"
NuGet と依存関係の管理
-
name: "パッケージ互換性の分析" prompt: "古くなった、または互換性のない NuGet パッケージを分析し、互換性のあるバージョンを提案します。.NET 8 のサポートがないサードパーティライブラリを特定し、移行パスを提供します。"
-
name: "共有依存関係の戦略" prompt: "プロジェクト間で共有される依存関係のアップグレードを処理するための戦略を推奨します。レガシーパッケージの使用状況を評価し、Microsoft がサポートする名前空間にある代替を提案します。"
-
name: "推移的依存関係のレビュー" prompt: "推移的依存関係と、アップグレード後の潜在的なバージョン競合をレビューします。依存関係の競合を解決するための戦略を提案します。"
CI/CD とビルドパイプラインの更新
-
name: "パイプライン構成の分析" prompt: "SDK バージョンの固定に関する YAML ビルド定義を分析し、更新を推奨します。
UseDotNet@2およびNuGetToolInstallerタスクの変更を提案します。" -
name: "ビルドパイプラインのモダナイズ" prompt: ".NET 8 移行に向けた更新済みのビルドパイプラインスニペットを生成します。main にマージする前に、フィーチャーブランチで検証ビルドを実行することを推奨します。"
-
name: "CI 自動化の強化" prompt: "CI パイプラインでテストとビルドの検証を自動化する機会を特定します。継続的インテグレーション検証のための戦略を提案します。"
テストと検証
-
name: "ビルド検証戦略" prompt: "アップグレードされたソリューションが正常にビルドおよび実行されることを確認するための検証チェックを提案します。アップグレード後の単体テストおよび統合テストスイートの自動テスト実行を推奨します。"
-
name: "サービス統合の検証" prompt: "ログ記録、テレメトリ、サービス接続を検証するための手順を生成します。後方互換性と実行時の動作を検証するための戦略を提案します。"
-
name: "デプロイ準備状況の確認" prompt: "本番ロールアウト前の UAT デプロイ検証手順を推奨します。アップグレードされたコンポーネント向けの包括的なテストシナリオを作成します。"
破壊的変更の分析
-
name: "API 非推奨の検出" prompt: "対象バージョン間で非推奨となった API や削除された名前空間を特定します。
.NET Upgrade Assistantと API Analyzer を使用した自動スキャンを提案します。" -
name: "API 置き換え戦略" prompt: "既知の破壊的領域に対する代替 API やライブラリを推奨します。
Startup.cs→Program.csのリファクタリングなどの構成変更を確認します。" -
name: "リグレッションテストの重点" prompt: "アップグレードされた API エンドポイントやサービスに焦点を当てたリグレッションテストのシナリオを提案します。重要な機能の検証に向けたテスト計画を作成します。"
バージョン管理とコミット戦略
-
name: "ブランチ戦略の計画" prompt: "ロールバック可能な安全なアップグレードのためのブランチ戦略を推奨します。部分的なアップグレードとプロジェクト全体のアップグレード向けのコミットテンプレートを生成します。"
-
name: "PR 構成の最適化" prompt: "構造化された PR(
Upgrade to .NET [Version])を作成するためのベストプラクティスを提案します。破壊的変更を含む PR のタグ付け戦略を特定します。" -
name: "コードレビューのガイドライン" prompt: "ピアレビューの重点領域(ビルド、テスト、依存関係の検証)を推奨します。効果的なアップグレードレビューのためのチェックリストを作成します。"
ドキュメントとコミュニケーション
-
name: "アップグレードドキュメント戦略" prompt: "各プロジェクトのフレームワーク変更を PR でどのように文書化するかを提案します。アップグレードとテスト結果を要約するリリースノートの自動生成を提案します。"
-
name: "ステークホルダーへのコミュニケーション" prompt: "バージョンアップグレードと移行スケジュールを利用者に伝達する方法を推奨します。依存関係の更新と検証結果に関するドキュメントテンプレートを生成します。"
-
name: "進捗追跡システム" prompt: "アップグレードのサマリーダッシュボードまたは markdown チェックリストを維持することを提案します。複数プロジェクトにわたるアップグレード進捗を追跡するためのテンプレートを作成します。"
ツールと自動化
-
name: "アップグレードツールの選択" prompt: "以下の使用時期と方法を推奨します:
.NET Upgrade Assistant、dotnet list package --outdated、dotnet migrate、graph.jsonによる依存関係の可視化。" -
name: "分析スクリプトの生成" prompt: "アップグレード前に依存関係グラフを分析するためのスクリプトまたはプロンプトを生成します。Copilot がアップグレードの問題を自動的に特定するための AI 支援プロンプトを提案します。"
-
name: "マルチリポジトリの検証" prompt: "複数のリポジトリにわたる自動化出力を検証する方法を提案します。エンタープライズ規模のアップグレード向けに標準化された検証ワークフローを作成します。"
最終検証とデリバリー
-
name: "最終ソリューションの検証" prompt: "最終的にアップグレードされたソリューションがすべての検証チェックに合格することを確認するための検証手順を生成します。アップグレード後の本番環境デプロイ検証手順を提案します。"
-
name: "デプロイ準備の確認" prompt: "最終的なテスト結果とビルド成果物を生成することを推奨します。プロジェクト全体の完了状況(ビルド/テスト/デプロイ)を要約するチェックリストを作成します。"
-
name: "リリースドキュメント" prompt: "フレームワークの変更と CI/CD の更新を要約するリリースノートを生成します。包括的なアップグレードサマリードキュメントを作成します。"