C#でMecabを使う。もうやだ編

ここ最近、Mecabに振り回されまくりである。

.net freamework4.0に変更したら動かなくなった。

新機能を使いたいわーっと新しいバージョンにすると死にました。
.net freamework4.0以降の変更で、「http://wiki.sh4e.net/?Tips%2FOther%2FMeCab」 で書いてある通り、DllImportを細かく指定しないと動きません。それ以前のソースでは急に動かなくなります。
でも細かく指定しても挙動がおかしい。細かいことを忘れたが、うまく動いてくれなくなった。余計な仕様変更するなぁぁぁぁ

そのため、Mecabの処理を別のフレームワークのバージョンを落としたDLLでやらせるという戦略に変更。前のだったら動くのだから。

MeCabSharpを使おう!

そんなわけで、手抜きして、MecabSharpを使おうとソースコード変更。
VS,NETでのデバックモードでは順調に動く。さて、他の人に配布しようとした段階のチェックのために使ってみたら止まる・・・。
吐いているエラーを調べて、ググってみたら、自分の書いたページがトップでヒットする。壮大にずっこける。教えてほしいのはこっちだよ!
他にヒットしていたページをよむ。「MeCabのラッパークラスを使用して形態素解析を行う - DoboWiki」で自分のさきほどの記事が参考されていてちょいと感動。そして狭い世界だな・・。
同じ症状のことが書かれている。再コンパイルすればいいらしい。やる。
注意点としては、こっちの環境はwindows7の64ビット版だということ。そのため、参照を C:\Program Files (x86)にしなくてはならない。
64ビット版で思い出したけど、Mecabは32ビット版なので、ソフトのコンパイル設定を Any CPUではなく、x86設定にしないとだめ。これも落とし穴。64ビット版OSにした意味ないじゃん的な気分になるけど。
これだけやって、ようやくまともに動くようになりましたよっと。

一応、作成したDLLをUP。