どうもこんばんわ。
Windows サンドボックス
にファイルをコピーしたくて、どうすれば良いのかなって調べたら、ファイルをコピーしてサンドボックスで貼り付ければいいらしい。
https://www.reddit.com/r/Windows10/comments/bwcgrd/how_do_i_move_files_between_windows_and_windows/
たしかに、別にテキスト以外も送れたのか・・・
本題
.NET 6
のLTS
がついに終わってしまうらしい。ので、今回は次のLTS
である.NET 8
にします。
今も使ってるWindows
で動くアプリが.NET 6
時代のままなので、アップデートしていきます。
環境
自作アプリはWindows App SDK
でできたアプリと、WinForm
のアプリになります。それらを上げます
なまえ | あたい |
---|
Windows | 10 Pro |
Visual Studio | Community 2022 Version 17.11.4 |
バックアップをとっとく
git
を使ってバージョン管理してるならすぐ戻せますが、もし使ってない場合はバックアップしといたほうが良いです。
.NET8 にする
.NET アップグレード アシスタント
を入れる?
https://learn.microsoft.com/ja-jp/dotnet/core/porting/upgrade-assistant-install#install-the-visual-studio-extension
ダウンロードします
パッケージがダウンロードできるので、Visual Studio へインストールします。
もしかしたらVisual Studio
の拡張から直接入れられたかも知れない。
ダブルクリックするとなんか始まる
Visual Studio
起動中だと進まないので閉じます
アップグレードアシスタントを起動してみた
さっきと同じようにアップグレードを押すとこんな画面に。
.NET バージョン
の方を選ぶ
.NET 8
を選んで次へ。
よくわかんないし、最悪戻せるのでこのままアップグレードの選択
を押します
はじまりました。と思ったらほとんどスキップで終わった。
差分をgit
で見てみたけど、<TargetFramework>
が変わったくらい?
ライブラリ更新もしておく
ソリューションから、プロジェクト選んで、Nugetパッケージの管理
を押して、更新があれば更新しておきます。
.NET 8 にあげたのに 6 を使っているから互換性がないと言われた
いやさっき.NET 8
にしたんですけど、なんでまだ6
使ってると思われてるの?
というわけで色々見てみた感じ、どうやらまだ設定しないとダメらしい?
まずはプロパティを開きます
つぎに、上げたはずのターゲットフレームワーク
を.NET 8
にします。、、、、む、押しても戻ってしまいます
PublishProfiles の TargetFramework が 6 のままだった
もしプロジェクト内にProperties
があって、その中にPublishProfiles
がある場合、その傘下にあるファイルの.NET
バージョンも変更する必要があります。
多分値は、アップグレードアシスタントの値と同じものを入れておけば良さそう。
これで晴れて.NET 8
に更新することができました。
実行できない
ありがとうございます:https://zenn.dev/shinta0806/articles/dotnet8-netsdk1083
リンク先は https://learn.microsoft.com/ja-jp/dotnet/core/compatibility/sdk/8.0/rid-graph
どうやら、win10-x64
となっている部分を、win-x64
にしろってことらしい。
プロジェクトをダブルクリックすると、xml
が開くはずで、その中から<RuntimeIdentifiers>
の行を探します。
わたしの場合はこうなってて、これをまずは以下のようにします。win10
をwin
だけにする。
つぎに、Properties
のPublishProfiles
にあるファイルにも<RuntimeIdentifiers>
があるので、同様にwin10
をwin
だけにしていきます。
Properties\PublishProfiles\win10-arm64.pubxml
Properties\PublishProfiles\win10-x64.pubxml
Properties\PublishProfiles\win10-x86.pubxml
まだ実行できない
.NET 8
にしたけどまだダメなのかな。。。
というか私以外も引っかかってるのこれ?
https://github.com/microsoft/WindowsAppSDK/issues/4698
とりあえずPropertyGroup
に一行書き足せって書いてあるので書き足してみる。一番最後のWindowsSdkPackageVersion
ってやつ。
うごいた!
やったぜ
発行できるかも試す
zip
にWindows App SDK
吐き出せるか試します。プロジェクトを右クリックで発行を押します。
一回も押したことがない場合は違う画面が開くと思う?。既存のプロジェクトなのでそのまま発行
を押します。
成功したぽい!!
おおお
ちゃんと起動できた。
多分<TargetFramework>
がnet8
になるだけ?
該当部分抜き出し。
おわりに
直したリポジトリ