本文由网友投稿。
作者:一位极少露面的靓仔
原文标题:WPF 版本问题排坑记录
原文链接:https://www.cnblogs.com/akwkevin/p/17288814.html
本文は読者からの投稿です。文中のサンプルリポジトリ:Dotnet9WPFControls、使用説明:WPF|快速添加新手引导功能(支持 MVVM)、サンプルが正常に動作したら1、失敗したら0を押して、感想を残してください…。
原文は以下の通りです。
先に結論を言います:命を大事に、不明なサードパーティ製コンポーネントライブラリからは遠ざかれ【管理者:...】
問題の説明
今朝、サボっているときに狼兄のオープンソースプロジェクトDotnet9WPFControlsを見つけました。とても興味を持ちました!しかし、cloneした後、起動できませんでした?え?姿勢が悪い?よし、もう一度実行!それでも起動できず、仕方なく狼兄本人に相談しました。狼兄は自分でcloneしたところ、彼の環境ではこのバグは再現しませんでした。エラーが発生しているライブラリはnugetから取得したものなので、まずエラー画面を見てみましょう:

トラブルシューティングの旅
サードパーティライブラリは:"MaterialDesignThemes.Wpf" です。
問題は明らかで、ライブラリの依存関係でアセンブリのバージョンが合っていないことが原因です。このPresentationFrameworkを見つけて適切なバージョンを当てれば良いわけです。問題は明確に見えます。
では、上記の考えに従って操作を始めましょう:
まず、現在参照しているPresentationFrameworkのローカルマシン上の保存場所を確認します:

そこで、このファイルディレクトリに入ります:

最初は6.0.2と6.0.16のフォルダはなく、後でこの問題を解決するためにダウンロードしたものです。
そしてフォルダに入ると、次のようになります:

このPresentationFrameworkがエラーになっている6.0.0バージョンです。上記の解決方針に従えば、これを6.0.2バージョンに置き換えれば問題は解決するはずですよね?
新しい問題が発生
そこで早速実行しようとしましたが、新しい問題が発生しました。6.0.2バージョンのPresentationFrameworkはどこで見つければいいのでしょうか?
PresentationFrameworkの他の類似のdllを観察したところ、この6.0.0は.NET SDKのバージョンと連動していることがわかりました。つまり、net6.0.2のSDKをダウンロードすればPresentationFrameworkの6.0.2バージョンが見つかるということです。
そこで、マイクロソフトの公式サイトにダウンロードに行きます:

ここで注意:テストした結果、右側のデスクトップランタイムをダウンロードしても無意味で、左側のSDKをダウンロードする必要があります。
解決する
ダウンロード後、参照をどのように置き換えるのでしょうか?
簡単です。私はとてもずるいが非常に便利な方法を思いつきました(このプロジェクトを実行するだけで、リリースは伴わないのでこれで問題ありません。ただし、リリースが必要な場合は絶対にこの方法を禁止してください!)
そうです、ファイル名のリネームです。6.0.2バージョンをダウンロードした後、参照フォルダは次のようになります:

狸の親分の入れ替えをしましょう!
6.0.2を6.0.0に変更します:

(※注:画像のキャプションが元記事と同一ですが、リネーム後のフォルダ構成を示していると思われます)
最後に、プロジェクトを再起動すると、問題は完全に解決され、正常に実行できました:


まとめ
管理者も新しいPC環境ですが、正常に動作しました。コメントをお待ちしています。