以前より、GitHub Copilot が勝手に target framework を変えてきて困っていました。
いや、嘘つきました。現実にはたいして困ることはありません。
実際のところ GitHub Copilot の持ってきたコードはいつも、そのまま全部受け入れることはできないコードなのでどうせ WinMerge など別の手段で部分ごとに確認、判断しながらマージしなければならないので、.csproj が書き換えられていようがあまり関係ないです。
■ 以前の記事
rksoftware.hatenablog.com rksoftware.hatenablog.com
■ なぜ GitHub Copilot は target framework を書き換えるのか
どうも、coding agent の環境では .NET 8 のようで、私のリポジトリのコードの .NET 10 がビルドに失敗するようです。(以前の記事)
■ というわけで
issue に .NET 10 をインストールするよう書いてみました。
■ 余談
issue ですが、一度 GitHub Copilot=サンを割り当てたものに対しても、
割り当て解除 ⇒ 再度割り当て
とすることで、またコードを書いてくれるようです。今回は少なくとも、コードを書いてくれました。
■ issue
issue に .NET 10 を明記、インストールするようにすら指示を書いてみます。

■ Copilot がんばれー
GitHub Copilot=サンが頑張りだしまず。まずは一回ビルドに失敗。(環境が .NET 8 なので)

.NET 10 をインストールしだしました!

見事! ビルドが成功しています。

■ 結果
target framework を書き換えずにコードを書いてくれました。素敵。

■ とはいえ
指示をしなければならないのは、違和感。.csproj で .NET 10 と書いてあるのだから、.NET 10 で動かしたいんですよ。
しかしこの様子だと、.NET 10 をインストールさせないと。
とすれば、やはり指示が必要か。
現時点での現実解としては、カスタムインストラクションをちゃんと使おうというところでしょうか。