ちょうど1ヶ月ほど前にXamarin.Studio 4.0.13にアップデートしたら、
Xamarin StudioアップデートしたらF5でデバッグ始まらなくなった。
— 中村竹七 (@Takeshich) 2013, 10月 13
Xamarinのforum見てみたけど特に同じエラーでてる報告はなさそう。気分が乗ったら調べて英語の実践勉強だ(サポートに問い合わせw)
— 中村竹七 (@Takeshich) 2013, 10月 13
としていたのだけれども、すぐにバージョンがあがらなかったので、重い腰を上げてフォーラムで質問してみた。で、回答があって、次のXamarin.Studio4.2で解決するらしい。という話。
症状
Xamarin.Studio 4.0.13において、GTK#のプロジェクトで以下の画像のようにStart Debuggingがでないんですよ。デバッグできない状態。ただ、ビルドはできるし、Start Without Debuggingもできる。
Androidのプロジェクトだと問題なく、Start Debuggingがでてデバッグできる。
デバッガがおかしくなったのかなと思って見てみた。.NET debbugerってなかったっけ・・・?
原因は
Xamarinのbugzillaによると、インストーラーを作成するためのWix scriptに問題があり、.NET debuggerをXamarin.Studioが見失ってしまうのが原因のようだ。
対策は
フォーラムでの質問の回答によるとbeta channelにして、4.2のbetaをインストールすれば解決するようだ。
当方の環境でも、4.2(build7)にしたところ無事デバッグできるようになった。
でもさ。。。
Xamarin.Studioをbeta channelにするとXamarin.Androidもbeta channelになってbeta版になる。
当方は特にリリースしているAndroidアプリがあるわけではないので、問題はなかったがstable版のままの環境を強いられる場合もあるだろう。
1月も放置してるってのもどうかなと思ってた。きちんと英語で伝えられるだけの力がないのでフォーラムのスレッドをクローズしようとしたら、やはりつっこみがあった。
@mhutch
I would think that would be a case where a hot fix update to the stable channel would be appropriate. Making people switch to the beta channel to get something what was omitted from the stable channel due to an oversight seems a little silly.
http://forums.xamarin.com/discussion/comment/33547/#Comment_33547
それに対する回答は以下で、
@DaveHunt: the .NET debugger is only used for debugging desktop projects on Windows when targeting the .NET runtime. Because it doesn't directly relate to Mono/Xamarin, and there are free alternatives (VS Express, SharpDevelop), it's historically been somewhat undermaintained and unreliable, and not really an officially supported feature. So that's why we didn't consider it worth a hotfix.
However, we have improved it substantially recently, since it's useful for debugging shared code and unit tests for mobile apps. In the next stable release it will be much better than it was before.
http://forums.xamarin.com/discussion/comment/33602/#Comment_33602
まぁ、目は向けている意図を表したので仕方ないのかなぁと思う反面、ここらへんの中途半端領域のバグに当たったら、結構苦労するだろうなぁと感じました。
昔、仮想サーバ(VMWare ESXi)のシステムで、DELL製のストレージで、ドライバがMicrosoft製で、権限を付けるときにWindowsServerがエラーを吐いてエラーを見る分にはドライバのバッグっぽいのだけれども、どちらのサポートに問い合わせてもウチじゃないです。って主張されてその機能を使うのを諦めたのを思い出しました。
英語書けるように勉強しないとなと痛感したけど、なかなかできていないなぁ。。。