2006年4月 5日 (水)

公開から二年

wix が SourceForge に公開されて2年になったそうです。

30 を超えるリリース、215,000 を超えるダウンロードその他もろもろ...

詳しくは、Windows Installer XML Toolset is 2 years old. をご参照ください。

| | コメント (0)

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 アプリに手を出してるでしょうし(そんな人だけじゃないか...(^^;)。

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

続きを読む "VC++ 2005 Express Edition を WiX 用エディタに変身させよう"

| | コメント (2) | トラックバック (1)

2006年3月14日 (火)

[wix]プリプロセッサを通すと...

マクロが全部展開されて、Include も解決されるのでどこに何があるかがわかるようになります。

続きを読む "[wix]プリプロセッサを通すと..."

| | コメント (0) | トラックバック (0)

2006年3月 7日 (火)

Visual Studio 2005 のカスタマイズ

WiX のソースを新規ファイルに出したかったので、いろいろとやってみました。
案外簡単にできるようになってるんですねぇ...

続きを読む "Visual Studio 2005 のカスタマイズ"

| | コメント (0) | トラックバック (0)

2006年1月20日 (金)

[wix] 新バージョン公開

Windows Installer XML (WiX) toolset の新バージョンが公開されました。

2.0.3719.0(WiX2)と、3.0.1719.0(WiX3) が公開されています。

WiX3は、今回初公開で、今後はこちらが成長するようです。

続きを読む "[wix] 新バージョン公開"

| | コメント (0) | トラックバック (1)

2005年12月 1日 (木)

[wix] MSI 4.0 に対応するって

The WiX toolset meets the MSI 4.0 feature set.

なかなか皮肉めいてて面白いんだと思うんですが...
英語読めないので、空気が読めません...orz

機械翻訳もこういうジョークめいたのを訳してくれると面白いんだけどなぁ...

誰か訳してくれないかしら…

続きを読む "[wix] MSI 4.0 に対応するって"

| | コメント (0) | トラックバック (0)

2005年11月 9日 (水)

[wix] WiX 用のGUIツール

Click Through 公開記念と称して(^^;
現在利用可能なWiX用のGUIツールを探してみました。

続きを読む "[wix] WiX 用のGUIツール"

| | コメント (0) | トラックバック (1)

2005年10月24日 (月)

[wix] Feature のオーダー

Feature の順序を wix で維持したい場合は、必ず Feature 全体を一つのファイルで実現していないとダメということがわかりました。

理由は...分割するとコンパイル時点でオーダー情報を確定できないからのようです。

ま、確かにそれは一理あるし、FeatureRef にオーダーの情報が含められるなんてことはどこにも書いてないのですが...

うーんだったら、dark で吐き出すファイルもそういう構造にしてほしいぞ...

ということで...

wix で分割コンパイル(特にFeature関係)を考えている場合はツリーだけで一つのファイルを作りましょう。

コンポーネントは、FeatureRef + ComponentRef で関連付けができるので、かなり大規模な構造でもたいした大きさにはなりませんしね(^^;

| | コメント (0) | トラックバック (0)

2005年10月20日 (木)

[wix] dark の取りこぼし Part3

書き忘れ(というか、取りこぼすことすら忘れてた...)がありました。

dark は、Font Table をチェックしていません。

そのため、フォントをインストールするアプリを変換した場合は、手作業で File 要素にTrueType="yes" とか、FontTitle="フォントタイトル" などを追加する必要があります。

海の向こうではフォントつきというのはあまりないのですかね(^^;

| | コメント (0) | トラックバック (0)

2005年10月14日 (金)

[wix] dark のバグと機械翻訳の限界点...

#10/14 17:40 更新しました。

連続してもう一つ。

WindowsInstaller のよくわからない(わかりづらい)機能の一つに CCPSearch というものがあります。

wix では ComplianceCheck という要素ツリーで表現するのですが、dark はここの変換でもポカをしています。

CCPSearch の詳細は Locator Tables Group, CCPSearch Table, CCPSearch Action あたりを見てもらうとして(^^;

wix の文法上は、CCPSearch Table の内容が
Sig1
Sig2
だったとしたら、

<ComplianceCheck>
  <???Search Id="Sig1"/>
</ComplianceCheck>
<ComplianceCheck>
  <???Search Id="Sig2"/>
</ComplianceCheck>

という形にしなければなりません。
が、dark で変換すると

<ComplianceCheck>
  <???Search Id="Sig1"/>
  <???Search Id="Sig2"/>
</ComplianceCheck>

という構造にして変換してくれます。

自分では CCPSearch は使ってないし、他のインストーラでもあまり見かけない上、入っていても10個程度なので、手作業での修正もそれほど大変ではないでしょう。
ですが、例外的なインストーラに Office(2003で確認)があります。なんと、このテーブルに300以上がエントリーされているのです。
こうなると手に負えません。

どうせ勉強中だし(おかげでだいぶわかりましたよ(^^;)、面白そうだから作ってみようじゃないのさ...
なんて軽く考えてはじめてみたものの...

何度作り直しても candle が受け付けてくれません...orz

結局のところ(=おいらの技術的知識の不足を棚に上げれば)、Office2003 の CCPSearch の構造があまりにも複雑すぎて、機械的に翻訳するのは(ほぼ)不可能というのが結論です(多分、もう少し違う視点が持てればいけそうですが...)。

実際には、ある程度のところまではいけてるんですがね...(^^;
どうしても、手作業でエラーを取り除かないとというところまでしかたどり着けませんでした。

まぁ、自分では CCPSearch は使ってないし、Office のインストーラがこの先 wix になるとしてもおいらには関係ないので、これ以上の挑戦はあきらめようかと(^^;

収穫は dark のバグが2つ見つかったというところですかね。
ということで書き留めておきます。

  1. <ComplianceCheck> に複数のエントリーをまとめて入れてしまう
  2. <ComplianceDrive>に複数のエントリーをまとめて入れてしまう

多くはないと思いますが、CCPSearch を使っているmsiの変換時には後で手修正をするようにしましょう。

#10/14 17:40 追記

最初にこの記事を書いたときにはデータ構造上無理だー!と思ってあきらめたんですが...
思い直して、エラーを出さないように出力させるってのもありかと直したらビルドが通ってしまった...

ま、リンクしていない(やるのはちょっとねぇ...(^^;)ので本当に問題ないかは確定していませんが...

| | コメント (0) | トラックバック (0)

より以前の記事一覧