---
title: GitHub Copilot アプリの最新化
tags: 
author: [mishizaki](https://convert.docswell.com/user/mishizaki)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/8EDXZGQYJG.jpg?width=480
description: Visual Studio の機能である「GitHub Copilot アプリの最新化」の説明と、実際に動かした様子を共有します。  .NET アプリのモダナイズを動かした結果のサマリーと評価を掲載しています。 .NET 8 ⇒ 10 .NET Stabdard ⇒ .NET .NET Framework ⇒ .NET BCL の File によるローカルファイル ⇒ Azure Files  また、今回動作を完了するまで5日間かかった闘いの記録を画像とともにかいつまんで共有します。
published: January 22, 26
canonical: https://convert.docswell.com/s/mishizaki/KYV26V-2026-01-22-000000
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/8EDXZGQYJG.jpg)

GitHub Copilot アプ
リの最新化
【登壇者募集中】.NET Conf 2025 後！ C# Tokyo カンファレンス
石崎 充良
1 / 76


# Page. 2

![Page Image](https://bcdn.docswell.com/page/V7PPD3L278.jpg)

自己紹介
石崎 充良 ( @mishi_cs )
C# Tokyo コミュニティ管理メンバー
GitHub：
https://github.com/m-ishizaki
blog：
https://rksoftware.hatenablog.com/
2 / 76


# Page. 3

![Page Image](https://bcdn.docswell.com/page/2JV214QXJQ.jpg)

目次
• GitHub Copilot アプリの最新化 とは？
• 何ができる？
• どうやって使う？
• 結論 (総評)
• 評価 (明細一覧)
スライド全体の半分がここ
• 検証題材
動作させている最中の様子の画像
• 戦いの記録（抜粋）
高速でページ送り予定
3 / 76


# Page. 4

![Page Image](https://bcdn.docswell.com/page/5EGR21WRJL.jpg)

GitHub Copilot アプリの最新化
とは？
4 / 76


# Page. 5

![Page Image](https://bcdn.docswell.com/page/4JQVPD3Y7P.jpg)

GitHub Copilot アプリの最新化 とは？
https://learn.microsoft.com/ja-jp/dotnet/core/porting/github-copilot-app-modernization/how-to-upgrade-with-github-copilot
5 / 76


# Page. 6

![Page Image](https://bcdn.docswell.com/page/K74MYZ1ZJ1.jpg)

英語で見てみよう
日本語に翻訳してみた
https://learn.microsoft.com/en-us/dotnet/core/porting/github-copilot-app-modernization/how-to-upgrade-with-github-copilot
6 / 76


# Page. 7

![Page Image](https://bcdn.docswell.com/page/LJ186RGDEG.jpg)

平たく言うと
⚫GitHub Copilot を使用してアプリをアップグレードする機能
⚫Visual Studio と IntelliJ で使えるらしい
⚫.NET、.NET Framework、Java、(Python)で作られたアプリ
をアップグレードできるらしい
Python は GA していない？
7 / 76


# Page. 8

![Page Image](https://bcdn.docswell.com/page/GJWZW1K8J2.jpg)

動かしてみた (1/3)
インターフェイスは
チャット(Agent モード？)
プランをもとにチェッ
クリスト形式でタスク
を作成してくれる
(実ファイル)
ソリューションを見て
プランをmarkdownで
作成してくれる
(実ファイル)
8 / 76


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4EZ15PZ973.jpg)

動かしてみた (2/3)
タスク定義ファイルを更新しながら
コードの変更してくれる
9 / 76


# Page. 10

![Page Image](https://bcdn.docswell.com/page/Y76L9MZDJV.jpg)

動かしてみた (3/3)
コード更新
コマンドの実行
もしてくれる
コマンド実行
コード更新
10 / 76


# Page. 11

![Page Image](https://bcdn.docswell.com/page/G751NZW8E4.jpg)

こんな感じ
ローカル
フォルダ
最新化作業
フォルダ
Visual Studio
GitHub Copilot
最新化指示
随時
確認
作成
assessment.md
作成
plan.md
ソースコード
フォルダ
作成
コマンド
ツール
随時
実行
tasks.md ファイル ソース
更新 コード
11 / 76


# Page. 12

![Page Image](https://bcdn.docswell.com/page/9J215RQV7R.jpg)

実ファイルも、いいものですね
今回何度もエラーになった
が
⚫ エラーで進めなくなって新規セッションにする場合もタスクを再開できる
⚫ 途中から他者が引き継ぐとこもできる
12 / 76


# Page. 13

![Page Image](https://bcdn.docswell.com/page/DEYZKDWQ7M.jpg)

何ができる？
13 / 76


# Page. 14

![Page Image](https://bcdn.docswell.com/page/VJN3R692J8.jpg)

定義済みのタスク？
Azure については次ページ
https://learn.microsoft.com/ja-jp/dotnet/core/porting/github-copilot-app-modernization/overview
14 / 76


# Page. 15

![Page Image](https://bcdn.docswell.com/page/YE99ML2DE3.jpg)

Azure
⚫Azure SQL DB、Azure SQL MI、Azure PostgreSQL
など、Azure 上のマネージド ID ベースのデータベー
スに移行する
⚫Azure File Storage への移行
⚫Azure Blob Storage への移行
⚫Microsoft Entra ID に移行する
⚫マネージド ID と Azure Key Vault を使用してセ
キュリティで保護された資格情報に移行する
⚫Azure Service Bus への移行
⚫Azure Communication Service メールに移行する
⚫Confluent Cloud/Azure Event Hub for Apache
Kafka への移行
⚫Azure で OpenTelemetry に移行する
⚫Azure Cache for Redis への移行
https://learn.microsoft.com/ja-jp/dotnet/azure/migration/appmod/predefined-tasks
15 / 76


# Page. 16

![Page Image](https://bcdn.docswell.com/page/GE89LX557D.jpg)

どうやって使う？
16 / 76


# Page. 17

![Page Image](https://bcdn.docswell.com/page/LELWL8Y3JR.jpg)

使い方はとても簡単
ソリューション エクスプローラー &gt; 右クリック &gt; [ 最新化 ]
17 / 76


# Page. 18

![Page Image](https://bcdn.docswell.com/page/4JM9M6NMEW.jpg)

チャット欄で選択・チャットで指示
多くの場合、
文末に選択肢が示され、
プロンプトに選択を書く
選択肢がでる
場合
ここをクリックしてもいいし、
別のプロンプトしてもいい
チャット応答
で選択肢が示
される場合
18 / 76


# Page. 19

![Page Image](https://bcdn.docswell.com/page/PJRGVPDLE9.jpg)

コード変更
コードが書き換え
られる
必要に応じコマンドも実行・
実行結果も見てくれる
タスク定義ファイルに進捗を
しながら進めてくれる
19 / 76


# Page. 20

![Page Image](https://bcdn.docswell.com/page/PEXXZ326EX.jpg)

最後は気持ちよく終わらない？
タスクは最後まで
行ったが
まだできることがあって、
やってくれようとしている
20 / 76


# Page. 21

![Page Image](https://bcdn.docswell.com/page/3EKW8YMGED.jpg)

結論 (総評)
21 / 76


# Page. 22

![Page Image](https://bcdn.docswell.com/page/L73129Y5J5.jpg)

最初に一つお伝えすること
動作記録として、ステップ（≒
要ユーザー操作）ごとにとって
いた画像の数
167 枚！
動かしきるのに 5 日！
検証題材が相性良くなかった可
能性あり
22 / 76


# Page. 23

![Page Image](https://bcdn.docswell.com/page/87DXZG5YEG.jpg)

結論 (総評)
⚫ライブラリの更新/変更での変更先のライブラリの選択
※ Azure File Strage に変更する場合に File クラスを Azure.Storage.Files.Shares に
⚫ライブラリの更新/変更の改修結果のコード
⚫.NET 8 ⇒ .NET 10 への *.csproj / global.json の書き換え
⚫テストも（あれば）やり切ってくれる
⚫時間がかかりすぎる (今回動かしきるまで 5 日間……)
⚫たまにエラーで止まる (ソリューションが多く複雑すぎたか……)
⚫.NET Framework の ASP.NET ⇒ .NET の ASP.NET はうまくいかなかった
⚫ライブラリ更新時のコード変更がやりきれない場合も
23 / 76


# Page. 24

![Page Image](https://bcdn.docswell.com/page/VJPPD3G2J8.jpg)

評価
⚫目的達成に「何をすればよいか」が想像できていない場合の分析・計画にとても良い
⚫既存コードが標準ライブラリのクラスをべた書きで使用時の変更場所の抽出も良い
⚫*.csproj の書き換えやライブラリの書き換えは手でやってしまった方が、今はまだ圧倒
的に早い
※ライブラリを変更して、エラーを手で取っていくなど
⚫ある程度知識のある人が、DI (Dependency injection・依存性注入) されたコードで
はまだそれほど活躍しない
24 / 76


# Page. 25

![Page Image](https://bcdn.docswell.com/page/2EV2146XEQ.jpg)

評価 (明細一覧)
25 / 76


# Page. 26

![Page Image](https://bcdn.docswell.com/page/57GR21NREL.jpg)

評価 (明細) ※雰囲気です
合計10
内容
補足
ウェイト
Global.json の SDK バージョン書き換え
.NET 8 ⇒ .NET 10 に書き換え (存在を見落としがちの
ため、ウェイト大)
1.0
5.0
-20.0 -15.0
*.csproj のターゲットフレームワーク書き
換え
.NET 8 ⇒ .NET 10 に書き換え (手でも簡単なため小)
0.2
5.0
-40.0
-7.0
バージョンアップすべきライブラリの抽出
ライブラリの抽出のみ（調査が必要なため大）
1.0
5.0
2.0
7.0
最新化に伴い不要になるライブラリの抽出
ValueTask など（地味に面倒、中）
1.0
5.0
2.0
7.0
最新化に伴い変更すべきライブラリの抽出
System.Data.SqlClient ⇒Microsoft.Data.SqlClient に変
更（手でもやりやすい、小）
0.5
5.0
5.0
5.0
最新化に伴い追加すべきライブラリの抽出
SixLabors.ImageSharp など（調査が必要なため大）
1.0
5.0
5.0
10.0
*.csprojの参照ライブラリ書き換え
*.csprojの書き換え（手でも簡単、小）
0.2
5.0
0.0
1.0
*.csproj の形式更新 (デスクトップアプ
リ)
.NET Frameworkプロジェクト⇒.NETプロジェクト（手
でもやりやすい、小）
0.2
5.0
0.0
1.0
*.csproj の形式更新 (ASP.NET)
.NET Frameworkプロジェクト⇒.NETプロジェクト（手
でもやりやすい、小）
0.2
0.0
0.0
0.0
ASP.NET の最新化
NET Framework⇒.NET （非常に困難、大）
2.5
0.0
0.0
0.0
ライブラリ変更に伴うコード変更 (1)
System.Data.SqlClient ⇒Microsoft.Data.SqlClient に変
更 （手でも簡単、小）
0.2
1.0
3.0
0.8
ライブラリ変更に伴うコード変更 (2)
SixLabors.ImageSharp、Azure.Storage.Files.Shares な
ど（出ては困難、大）
2.0
5.0
5.0
20.0
5点評価
品質
時間
合計
！注意！ 今回の検証題材が、生成 AI と相性の悪いコードの可能性高
点数
29.8
26 / 76


# Page. 27

![Page Image](https://bcdn.docswell.com/page/4EQVPDQYJP.jpg)

赤枠をウマくやってくれるのは、とても良い
内容
補足
Global.json の SDK バージョン書き換え
.NET 8 ⇒ .NET 10 に書き換え (存在を見落としがちの
ため、ウェイト大)
1.0
5.0
-20.0 -15.0
*.csproj のターゲットフレームワーク書き
換え
.NET 8 ⇒ .NET 10 に書き換え (手でも簡単なため小)
0.2
5.0
-40.0
-7.0
バージョンアップすべきライブラリの抽出
ライブラリの抽出のみ（調査が必要なため大）
1.0
5.0
2.0
7.0
最新化に伴い不要になるライブラリの抽出
ValueTask など（地味に面倒、中）
1.0
5.0
2.0
7.0
最新化に伴い変更すべきライブラリの抽出
System.Data.SqlClient ⇒Microsoft.Data.SqlClient に変
更（手でもやりやすい、小）
0.5
5.0
5.0
5.0
最新化に伴い追加すべきライブラリの抽出
SixLabors.ImageSharp など（調査が必要なため大）
1.0
5.0
5.0
10.0
*.csprojの参照ライブラリ書き換え
*.csprojの書き換え（手でも簡単、小）
0.2
5.0
0.0
1.0
*.csproj の形式更新 (デスクトップアプ
リ)
.NET Frameworkプロジェクト⇒.NETプロジェクト（手
でもやりやすい、小）
0.2
5.0
0.0
1.0
*.csproj の形式更新 (ASP.NET)
.NET Frameworkプロジェクト⇒.NETプロジェクト（手
でもやりやすい、小）
0.2
0.0
0.0
0.0
ASP.NET の最新化
NET Framework⇒.NET （非常に困難、大）
2.5
0.0
0.0
0.0
ライブラリ変更に伴うコード変更 (1)
System.Data.SqlClient ⇒Microsoft.Data.SqlClient に変
更 （手でも簡単、小）
0.2
1.0
3.0
0.8
ライブラリ変更に伴うコード変更 (2)
SixLabors.ImageSharp、Azure.Storage.Files.Shares な
ど（出ては困難、大）
2.0
5.0
5.0
20.0
合計
ウェイト
品質
時間
点数
29.8
27 / 76


# Page. 28

![Page Image](https://bcdn.docswell.com/page/KJ4MYZNZE1.jpg)

検証題材
28 / 76


# Page. 29

![Page Image](https://bcdn.docswell.com/page/LE186R5D7G.jpg)

巨大な .NET ソースコード
簡単すぎては面白くない
大きなコードが必要
ビルドが簡単（Clone して何回かの操作でビルド可能）
https://github.com/pleasanter-developer-community/Implem.Pleasanter
29 / 76


# Page. 30

![Page Image](https://bcdn.docswell.com/page/GEWZW158E2.jpg)

AGPL 3.0
https://github.com/pleasanter-developer-community/Implem.Pleasanter/blob/main/LICENSE
30 / 76


# Page. 31

![Page Image](https://bcdn.docswell.com/page/47Z15PN9J3.jpg)

多彩なプロジェクト
https://github.com/pleasanter-developercommunity/Implem.Pleasanter/commits/main/?before=575e3d58851cd1e225e2c5970e9d3510cbe65587+595
31 / 76


# Page. 32

![Page Image](https://bcdn.docswell.com/page/YJ6L9M8DEV.jpg)

ファイル数 7,262 ファイル
32 / 76


# Page. 33

![Page Image](https://bcdn.docswell.com/page/GJ51NZ9874.jpg)

過去バージョンに .NET 過渡期の多彩なアプリ
.NET Standard
ライブラリ 群
.NET の ASP.NET
Core アプリ
.NET Framework
の ASP.NET アプリ
.NET Framework
の Windows アプリ
https://github.com/pleasanter-developer-community/Implem.Pleasanter/tree/95847dbeee3cd7817bca0659d64b048c0053d437
33 / 76


# Page. 34

![Page Image](https://bcdn.docswell.com/page/LE3129YG75.jpg)

実施内容
次の 3 パターンを実施
1. .NET の最新化 （.NET 8.0⇒.NET 10.0）およびライブラリ
のセキュリティ更新
2. .NET Framework ⇒ .NET および .NET 2.2 ⇒ .NET 10
3. .ストレージをローカルファイル⇒Azure Files
今回の動作結果はこちらに次にPushしています
https://github.com/m-ishizaki/Fork_Implem.Pleasanter/tree/github-copilot-app-modernization
34 / 76


# Page. 35

![Page Image](https://bcdn.docswell.com/page/8EDXZG5NJG.jpg)

戦いの記録（抜粋）
35 / 76


# Page. 36

![Page Image](https://bcdn.docswell.com/page/V7PPD3GN78.jpg)

最新化
36 / 76


# Page. 37

![Page Image](https://bcdn.docswell.com/page/2JV2146YJQ.jpg)

最新化のメニュー
37 / 76


# Page. 38

![Page Image](https://bcdn.docswell.com/page/5EGR21NWJL.jpg)

使用するモデルの変更
38 / 76


# Page. 39

![Page Image](https://bcdn.docswell.com/page/4JQVPDQQ7P.jpg)

メニューを選ぶと、プロンプトに張り付くだけ
39 / 76


# Page. 40

![Page Image](https://bcdn.docswell.com/page/K74MYZNYJ1.jpg)

.NET のアップグレード専用ワークフロー？
40 / 76


# Page. 41

![Page Image](https://bcdn.docswell.com/page/LJ186R5NEG.jpg)

分析 – 計画 – 実行
41 / 76


# Page. 42

![Page Image](https://bcdn.docswell.com/page/GJWZW1WMJ2.jpg)

分析 (markdown ファイル作成)
42 / 76


# Page. 43

![Page Image](https://bcdn.docswell.com/page/4EZ15P5M73.jpg)

やることについて問い合わせしてくる
43 / 76


# Page. 44

![Page Image](https://bcdn.docswell.com/page/Y76L9M95JV.jpg)

ソースを分析して必要なライブラリを教えてくれる
（更新もしてくれる）
44 / 76


# Page. 45

![Page Image](https://bcdn.docswell.com/page/G751NZNGE4.jpg)

分析結果表示 専用 UI の場合あり
45 / 76


# Page. 46

![Page Image](https://bcdn.docswell.com/page/9J215R5D7R.jpg)

続き
46 / 76


# Page. 47

![Page Image](https://bcdn.docswell.com/page/DEYZKDKM7M.jpg)

続き
47 / 76


# Page. 48

![Page Image](https://bcdn.docswell.com/page/VJN3R6R3J8.jpg)

計画 (markdown ファイル作成)
48 / 76


# Page. 49

![Page Image](https://bcdn.docswell.com/page/YE99MLMPE3.jpg)

作成されたファイルは更新されることも
49 / 76


# Page. 50

![Page Image](https://bcdn.docswell.com/page/GE89LXLX7D.jpg)

タスク (markdown 作成)
50 / 76


# Page. 51

![Page Image](https://bcdn.docswell.com/page/LELWL8LNJR.jpg)

タスクに
を付けながら実行
51 / 76


# Page. 52

![Page Image](https://bcdn.docswell.com/page/4JM9M6MQEW.jpg)

必要に応じコマンドも実行
52 / 76


# Page. 53

![Page Image](https://bcdn.docswell.com/page/PJRGVPVKE9.jpg)

global.json の変更が必要と見つけたり
53 / 76


# Page. 54

![Page Image](https://bcdn.docswell.com/page/PEXXZ3Z5EX.jpg)

コマンドの実行を常に許可
54 / 76


# Page. 55

![Page Image](https://bcdn.docswell.com/page/3EKW8Y8RED.jpg)

global.json を更新してコマンドをやり直したり
55 / 76


# Page. 56

![Page Image](https://bcdn.docswell.com/page/L731292GJ5.jpg)

テストも実行してくれる
56 / 76


# Page. 57

![Page Image](https://bcdn.docswell.com/page/87DXZGZNEG.jpg)

改修後はコミットまで
！ローカルリポジトリなしで試した
のでエラーになっている
57 / 76


# Page. 58

![Page Image](https://bcdn.docswell.com/page/VJPPD3DNJ8.jpg)

改修結果
58 / 76


# Page. 59

![Page Image](https://bcdn.docswell.com/page/2EV2141YEQ.jpg)

バージョンやライブラリ変更
59 / 76


# Page. 60

![Page Image](https://bcdn.docswell.com/page/57GR212WEL.jpg)

大量のビルドエラー
60 / 76


# Page. 61

![Page Image](https://bcdn.docswell.com/page/4EQVPDPQJP.jpg)

ちょっと足りなかった (筆者があきらめたから？)
61 / 76


# Page. 62

![Page Image](https://bcdn.docswell.com/page/KJ4MYZYYE1.jpg)

割と出るエラー
62 / 76


# Page. 63

![Page Image](https://bcdn.docswell.com/page/LE186R6N7G.jpg)

ソリューションを開きなおしてもダメ
63 / 76


# Page. 64

![Page Image](https://bcdn.docswell.com/page/GEWZW14ME2.jpg)

Copilot Chat を一度閉じてセッション再開
64 / 76


# Page. 65

![Page Image](https://bcdn.docswell.com/page/47Z15P2MJ3.jpg)

もう一度初めから
以前作成の markdown が残っている
65 / 76


# Page. 66

![Page Image](https://bcdn.docswell.com/page/YJ6L9MV5EV.jpg)

Visual Studio がエラーを検知
66 / 76


# Page. 67

![Page Image](https://bcdn.docswell.com/page/GJ51NZDG74.jpg)

失敗しても、いろいろ考えて頑張る
67 / 76


# Page. 68

![Page Image](https://bcdn.docswell.com/page/9E215R8DJR.jpg)

リクエスト消費しすぎ
以降、有償にして進行
68 / 76


# Page. 69

![Page Image](https://bcdn.docswell.com/page/D7YZKD6MJM.jpg)

ファイル更新と Visual Studio の認識
69 / 76


# Page. 70

![Page Image](https://bcdn.docswell.com/page/VEN3R6Z3E8.jpg)

再読み込みパターン
70 / 76


# Page. 71

![Page Image](https://bcdn.docswell.com/page/Y799MLZP73.jpg)

画像ライブラリの変更
コードもちゃんと改修
71 / 76


# Page. 72

![Page Image](https://bcdn.docswell.com/page/G789LX1XJD.jpg)

Azure Files を使うように改修
きちんとインターフェイス切って
ローカルストレージとの差し替えに
72 / 76


# Page. 73

![Page Image](https://bcdn.docswell.com/page/L7LWL8QNER.jpg)

使うところも改修
独特のコードスタイルも踏襲
珍しいコードスタイルでも
きちんと踏襲
73 / 76


# Page. 74

![Page Image](https://bcdn.docswell.com/page/4EM9M61Q7W.jpg)

Service クラス使用にコード改修
74 / 76


# Page. 75

![Page Image](https://bcdn.docswell.com/page/PERGVPLK79.jpg)

まとめ
75 / 76


# Page. 76

![Page Image](https://bcdn.docswell.com/page/P7XXZ3W57X.jpg)

まとめ
⚫目的達成に「何をすればよいか」が想像できていない場合の分析・計画にとても良い
⚫既存コードが標準ライブラリのクラスをべた書きで使用時の変更場所の抽出も良い
⚫*.csproj の書き換えやライブラリの書き換えは手でやってしまった方が、今はまだ圧倒
的に早い
※ライブラリを変更して、エラーを手で取っていくなど
⚫ある程度知識のある人が、DI (Dependency injection・依存性注入) されたコードで
はまだそれほど活躍しない
76 / 76


# Page. 77

![Page Image](https://bcdn.docswell.com/page/37KW8YVR7D.jpg)

ありがとうございました。
【登壇者募集中】.NET Conf 2025 後！ C# Tokyo カンファレンス
石崎 充良
77 / 76


