なんとなく

誰得感満載な記事が多いかも。Mono関係とLinuxのサーバ関係、レビューとか。

Xamarin.Studio 4.0.13にしたら、GTK#のプロジェクトがデバッグできなくなった

ちょうど1ヶ月ほど前にXamarin.Studio 4.0.13にアップデートしたら、

としていたのだけれども、すぐにバージョンがあがらなかったので、重い腰を上げてフォーラムで質問してみた。で、回答があって、次のXamarin.Studio4.2で解決するらしい。という話。

症状

Xamarin.Studio 4.0.13において、GTK#のプロジェクトで以下の画像のようにStart Debuggingがでないんですよ。デバッグできない状態。ただ、ビルドはできるし、Start Without Debuggingもできる。
f:id:takeshich:20131112153116j:plain

Androidのプロジェクトだと問題なく、Start Debuggingがでてデバッグできる。
f:id:takeshich:20131112153124j:plain

デバッガがおかしくなったのかなと思って見てみた。.NET debbugerってなかったっけ・・・?
f:id:takeshich:20131112153127p:plain

原因は

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がエラーを吐いてエラーを見る分にはドライバのバッグっぽいのだけれども、どちらのサポートに問い合わせてもウチじゃないです。って主張されてその機能を使うのを諦めたのを思い出しました。

英語書けるように勉強しないとなと痛感したけど、なかなかできていないなぁ。。。