« [wix]プリプロセッサを通すと... | トップページ | あっちもこっちも今日で終わり »

2006年3月23日 (木)

VC++ 2005 Express Edition を WiX 用エディタに変身させよう

WiX を VS 上で使うためのツールに Votive があるのですが、残念ながらこのツールは ExpressEdition にインストールすることが出来ません。

がんばってみた人もいるようですが、ドキュメントサイドから攻めてみたところ、VSIP を使っているということのようなので、どうにもならなそうです(インストールだけならちょっと細工すれば可能ですけどね(^^;)。

仕方ないので、Standard に...というのではなんか悔しいので、どうせならガリガリにエディタとして昇華させてしまうことにしました。

と。。。そのまえに、なぜ VC++ なのかというと、WindowsInstaller で本格的なインストーラを作る場合、絶対に Native DLL を作れる環境が必要になります。

Express Edition で Native DLL となると Visual C++ 2005 Express Edition しかありません。他の Express Edition は .NET Framework をベースとしているのですから。

せっかくあるのですし、無償で整えられる環境としても十分な価値がある(WiX の作成環境としてはこの上ないともいえるでしょう)のですから、使わないという選択肢はないでしょう。

既にここを読んでる多数の人が(って検索でくるだけかなぁ...)、VC++ Express Edition に PlatformSDK をインテグレートして Windows Native アプリに手を出してるでしょうし(そんな人だけじゃないか...(^^;)。

いずれはインストーラをとなったときに、自分で自由にやれるというのは一つの強みですしね(^^;

まずは、WiX のソースを落としてきます。

バージョンは自分が実際に使うものを選択してください。テンプレートソースがバージョンの影響を受けるかもしれませんので。

これは、今後バージョンアップした場合、その都度ファイルを更新してあげる必要がある(かもしれない)ということも意味します。

適当なところに展開が終わったら、まずはインテリセンス対応から行いましょう。

src\wix\Wsd から wix.xssd と wixloc.xsd の2つを C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas にコピーします。

以上です。VS2003までと違って、拡張子設定とかがいらなくなりました。簡単ですね(^^;

これで、wix のソースファイル類でインテリセンスが利用できるようになります。

ちなみに、この二つのファイルは、バイナリの doc にもあります。

次は、関連付けを行います。

レジストリを操作することになりますので、自信がない人はスキップしてもかまいません。
なくて困るのはエクスプローラから直接呼べないいう程度ですから。

最初から全部書き込んでもいいのですが、面倒なので、雛形は VC の設定をもらうことにします。

レジストリエディタを立ち上げて、.cpp に関連付けされている ProgId のキーをエクスポートしてください。

エクスポートした.REG ファイルをテキストエディタで開き、最初の2行を除く全ての行をまとめて3つに膨らませます。

それぞれのブロックの .cpp を .wxs, .wxi, .wxl の3つに書き換えます。

次は、拡張子の説明を書き換えます(エクスプローラでは種類に当たるところです)。
このままでもいいんですが、C++ Source になってしまってかっこ悪いので、Votive と同じ設定にすることにしましょう。

  • .wxs は WiX Source File
  • .wxi は WiX Include File
  • .wxl は WiX Language File

をそれぞれ設定してください。

次は、アイコンを変えます。

アイコンファイルは C:\WiX2\src\votive\Icons にあります。

wxs は BlankFile.ico, wxi は IncludeFile.ico, wxl は ResourceFile.ico です。

そのまま参照しても良いし、専用フォルダを用意してそこにコピーしても良いでしょう。

これらの設定が済めば、ProgId 部分は完成です。

最後に、実際の拡張子との関連付けを組み入れますので

[HKEY_CLASSES_ROOT\.wxs]
@="VCExpress.wxs.8.0"

という感じで3つ追加します。

VC自身の設定ではもっとたくさんの設定があるのですが、なくても支障はありません。
つけたいなという人は適宜設定してください。

間違いがないことを確認したら、ファイルを保存して取り込んでください。

以上で関連付けも完了です。

関連付けしたのにエクスプローラの表示がついてきていないという場合は一度リブートしてください。
環境によっても違うのですが、ついてこない場合がありますので(^^;

ここまで出来たら一度動作確認をしておきましょう。

展開したソースの中に、いくつかのwxsファイルやwxiファイルがありますので、適当なものをエクスプローラでダブルクリックしてみてください。

VCが起動すれば、正しく設定されていることになります。

さらにもう一つエクスプローラでダブルクリックして動いているVCに表示されていれば、設定は万全です。
Votive のインストーラでは常にユニーク起動となっているのでこの点は手作業修正しても良いでしょう。

これで、関連付けとスキーマ設定が行われました。

XMLエディタとしては、ほぼ完璧です(^^v

が、これだけでは毎度おまじないコードが必要になってしまいますので、新規ファイルのテンプレートも入れておきましょう。

こちらも、Votive では設定されませんので、同じように設定しておくと若干使い勝手が良くなるかもしれません。

まずは、C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\VCExpress\NewFileItems のフォルダに WiX というフォルダを作ります。
フォルダ名は何でも良いのですが、このフォルダ名がそのまま新規ファイルのツリーに表示されるのでそれとわかる名前をつけておくと良いでしょう。

フォルダを作ったら、そこに C:\WiX2\src\votive\Templates\ProjectItems の中身をそのままコピーします。

これで、ファイル-新規作成にファイルがリストアップされるようになります。

これだけでもいいのですが、ソリューションエクスプローラの右メニューにも対応しておきたいので、そっちにも設定を加えます。

こんどは C:\Program Files\Microsoft Visual Studio 8\VC\Express\VCProjectItems に 先ほどコピーした WiX のフォルダをそっくりそのままコピーします(本当はリンクでもいいんですが...(^^;)。

以上で、VC++ Express Edition を WiX ソースエディタへと昇華させることが出来ました。

なお、Standard Edition 以上の場合、Express の部分がフォルダ構成が若干異なります。実際にフォルダを覗いてみればわかりますので、どこにもって行けばいいか検討してみてください。

残念ながら Votive とは違ってこれだけでは、ビルド環境としての VS の機能は使えません。
プロジェクトの規模にも拠りますが、バッチファイル、NMake、NAnt、MS-Build などを利用して、実際のプロジェクト作成を行う形になります。

なにを選ぶかは、その人次第ですが、私の場合、仕事の都合上 NMake を利用しています。
理由は...仕事の都合です。いえ、ほんとそれだけなんですが...まぁ親しんでる分、やりやすいってのはありますね(^^;

|

« [wix]プリプロセッサを通すと... | トップページ | あっちもこっちも今日で終わり »

コメント

読ませていただきました。
大変参考になりました。
これからも、良い情報の発信をしていだければと思います。
ありがとうございました。
仕様書作成係
http://www.hotdocument.net/

投稿: 仕様書作成係 | 2010年1月29日 (金) 11:26

コメントありがとうございます。。。って随分と古い記事に。。。w

えっと、今は、
http://blogs.wankuma.com/tocchann/
でブログを続けています。

このブログはあちこちからリンクが張られているので、保持したままの状況です。
そちらもご覧いただければ。。。と思います。

投稿: とっちゃん | 2010年1月29日 (金) 12:29

この記事へのコメントは終了しました。

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/124611/9226231

この記事へのトラックバック一覧です: VC++ 2005 Express Edition を WiX 用エディタに変身させよう:

» CodeZineでの連載が公開されました [とっちゃん's Blog]
CodeZineでの連載が公開されました [続きを読む]

受信: 2006年6月27日 (火) 11:06

« [wix]プリプロセッサを通すと... | トップページ | あっちもこっちも今日で終わり »