えーと、前回の大阪勉強会以来ですかね。とりあえず11月の駆け込みエントリということでw
やまだです。
なんか大阪の方が私のホームになってきた感のある今日この頃、皆様いかがお過ごしでしょうか?
#ホームレス、という話もありますがw
相変わらずちまちまと自宅でWPFプログラムを弄ってたりします。あまり時間もとれないし、一つ機能を入れるたびにリファクタリングの嵐で遅々としてしか進んでいなかったりしますが。
で、せっかくWPFでプログラム作ってることだし、ひさしぶりにSandcastleでAPIリファレンスでも出してみるかなぁ、と。別にWPFだからってSandcastleの何が変わるわけでもないはずで、まぁとりあえずやってみるべしと。
で、それだけのことなのに、なぜかはまること、はまること。
その1.なんか変だ
え、変なのはお前だ、って?あ、はい、まあそれは置いておくとして(認めるのかっ)
生成されたAPIリファレンスの表示が何かおかしかったりします。ドキュメント内リンクも有効になっていないし。
でも、"Build completed successfully." って表示が出てるしなぁ。ちゃんと出力されているはずなんだが……、とログを見て、途中にある文字列に気づきます。
OutOfMemory
……おーい。……ぉーぃ、ぉーぃ、ぉーぃ……。
むなしくコダマが響きます……。
……成功していないだろうがっ!
教訓1.Sandcastle Help File Builder は、成功していなくても "Build completed successfully." って表示することがあるので要注意です。何かあやしいと思ったらログを追っかけるべし!
その2.さっきは成功したのに……
え、学習効果がないのは、お前だ、って?……あー、そーかも。
なんかねー、ドキュメントの再生成を繰り返しているうちに、動作が変わるんですよ。で、原因は↑の OutOfMemory だったりして。
で、一度終了させて、もう一度起動しなおすと今度はちゃんと動いたり。
……これって、メモリリーク起こしてないか?とあらぬ疑いをかけてみる。
#自分の期待どおりの動作しなかったら、バグだーと叫ぶ困った人、いますよねー。……はっ、私かっ!?
教訓2.Sandcastle Help File Builder が期待通りの動作をしなかった場合には、一度再起動してみましょう。今度はちゃんと動くかもよ?
その3.お前は何をしてるんだっ!?
え、意味不明なのは(以下略)。……はいはい、どーせそうですよー。
XAML では明示的にクラス定義はしないですよね。だから、".xaml.cs", ".xaml.vb" 側の partial class 側に<sammary>タグでコメントを書いています。
自分では、このやり方で問題ないように思っていたんですが、生成されたドキュメントでクラス名の一覧を見てみると、クラス名がコメントに表示されている……。おーい、自分で記述した方のコメントはどこに行ったんだー?
……と思って、クラスの方のAPIを見てみると、確かに自分が書いたコメントはありましたけど、その他にそのクラス名だけのコメントが1行追加されている……。何だコレ?
で、XAML定義をミスってIDEがエラー吐いたとき、その原因を追っかけてってわかったですよ。XAMLから生成されたC#(VB)のコードに勝手に<sammary>タグが追加されてるっ!
意味のない情報を自動生成すんなー……。
教訓3.XAMLで定義したクラスには、Visual Studioによりクラス名だけの<sammary>タグがつけられたりします。まぁ、そーゆーものなので、気にするのはやめましょう。
では、次回はまた大晦日にお会いしましょう?