Visual Studio のカスタムツールを作ってみた
いま開発しているソフトで、RedmineのWikiに書かれている情報をテキストファイルにコピペして、ソフトにReadmeとして付けていました。そうなると、RedmineのTextile形式のままで同梱することになって見た目があまり良くありません(決して読めないわけじゃないですが)なので、テキストファイルを作成するまでは仕方ないとして、HTMLに変換させたい。いちいち手作業でやるのは馬鹿馬鹿しいので、Visual Studio のカスタムツールをつくってみました。
といっても、TextileをHTMLにするのは、http://textilenet.codeplex.com/:Title=Textile.NETをほとんどそのまま利用しましたし、カスタムツールとして作成する部分もhttp://kazuktnd.wordpress.com/2011/02/14/implementing-visual-studio-custom-tool-step-by-step/:Title=こちらの記事を参考にして、ほとんどそのまま利用できました。なので、とりたててここに書くことはほとんどありません……。なお、検索すると2008までのやりかたも数多く見つかってそれで少し混乱しました。
あ、カスタムツール実行後のファイル拡張子を替えるために、BaseCodeGeneratorWithSite 継承したクラスでGetDefaultExtensionメソッドをオーバーライドしたくらいでしょうか。
protected override string GetDefaultExtension() { return ".html"; }
こんなの。
それにしてもあまりにも簡単に作れるのでコード生成をT4とかでやるよりもコードで書いちゃった方が楽な場合がけっこうありそうな気がしています。とくにこういったコンバータみたいなタイプのものは、カスタムツール化するのは悪くないなーと思いました。
作ったプロジェクトを Bitbucketに置いておきます。さっきBitbucketのアカウントを作ったばかりなので、使い方間違っておかしなことになってないといいけど。ライセンスは http://creativecommons.org/licenses/by-sa/3.0/:Title=CC BY-SA 3.0です(Textile.NETのライセンスをそのまま継承してあります)
追記
PC環境を新しくしたので、ひさしぶりにこのプロジェクトを開こうとしたらエラーになって開けません。どうも Download Visual Studio 2010 SP1 SDK from Official Microsoft Download Center がないとダメのようです。最初にやったのにすっかり忘れていました。