.Net Core でもバージョン 3.0 以降で WPF を使用した GUI アプリケーションを作ることが出来るようになりました。これと C/C++ で作成したネイティブの DLL を組み合わせてアプリケーションを作ろうとしたのですが、今回のタイトルにある課題に出遭いました。
実行は出来る
C# 部分のデバッグ実行は問題なく出来ます。また、 DLL 部分の実行も問題なく出来ます。
しかし、C# の部分と、 DLL の中 (C/C++) のデバッグを同時にしようとして、プロジェクトの設定を変更したときに、デバッグ実行が出来なくなるといった症状があります。
「ネイティブコードのデバッグを有効にする」これをONの状態にすると、デバッグ実行開始時点で各シンボルをロードする段階で進行停止の状態になりました。
この問題を調べてみたところ GitHub に Issue があり、現時点では 16.x のマイルストーンには入っているようなので、いつか修正はされるのではないかと思っています。
対策案 (解決しません)
現時点でどうにかしようとすると、C#とC/C++部分は別々にデバッグするしかなさそうです。
WPF 部分をデバッグ実行開始した場合には、 DLL 部分をデバッグしようとして別の Visual Studio を用いてプロセスにアタッチすることも出来ません。既にデバッガがアタッチ済みというエラーが出ます。
WPF 部分をデバッグ無し実行して、そのときには C/C++ プロジェクトからアタッチが可能なので、それでのデバッグはできます。
どちらにせよ、スムーズなデバッグ作業とはいかないため、なかなか扱いづらいですね。早期に解決を期待しつつ、 .Net framework 4.8 を選択して開発をしようと思います。 .Net framework 4.8 なら、このような問題は起こりませんでした。
コメント