NOEMBLEM/エンブレムが設定されていません。

メールの詳細(トピック表示)

torch/pyro でのパッチ作成について

投稿者:Hiroyuki_Kさん  2016/09/09 17:46  MLNo.3228   [メール表示]

お世話になっています。
Hiroyuki_Kです。

torch/pyro でのパッチ作成に躓いてしまったので相談させてください。

開発環境をWiX3.5からWiX3.10に移行し、WiX3.5の時と同じようにパッチを作成したところpyroの実行結果で「warning PYRO1079」と「error PYRO0227」が発生してしまいました。
torchではWiX3.10で作成した.wixpdb同士で.wixmstを作成しています。
もちろんファイルに相違がある状態で作成しており、WiX3.5では問題なくパッチを作成できていました。
いろいろ調べてみると、WiX3.6からこの現象が発生しているようで、詳しくはわからなかったのですが、バグの疑いがあるみたいでした・・・。

ふと、以前とっちゃんさんがレスした内容を思い出したんですが、


http://www.freeml.com/msi/3165

当時はあまり気にしていなかったのですが、もしかして、WiX3.6以降からはパッチ用のWiXソースにすべてのコンポーネントをComponentRefとしてPatchFamily以下に書いておかなければならないのでしょうか?
WiX3.5では

<PatchFamily Id="MyUpdateFamily" Version="1.0.0.1" Supersede="yes">
<ComponentRef Id="Hoge.dll"/>
</PatchFamily>

と適当に書いておけば勝手にComponentRef以外のコンポーネントも差分ファイルが抽出されていたんですが・・・。


エラーログ:
PatchMain.wxs(5) : warning PYRO1079 : The cabinet 'RTM.cab' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet.

diff.wixmst : error PYRO0227 : The transform being built did not contain any differences so it could not be created.


Gg[ubN}[N


  • MLNo.3229   とっちゃんさん  (0) 2016/09/09 18:10  [メール表示する]
    とっちゃんです。

    >PatchMain.wxs(5) : warning PYRO1079 : The cabinet ''RTM.cab'' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet.

    のメッセージを読むと、torch -p を使うか、ComponrentRef をセットしろって書いてあるようですね。
    もしかすると、wixpdb に書き込まれてるオリジナルファイルのソースパスが、1.0.0.0 と 1.0.0.1 で別パスになってないとダメとか
    そういうのがあるのかもしれません。

    なにかあるかねぇ?とリファレンスを見ていたら、<All /> というタグを見つけました。
    テスト的なもので PatchFamily の利点が無くなるから使うなみたいなことは書いてありますが
    これだと、変更点を全部ピックアップしてパッチを作成してくれるの「かも」しれません。

    文章的には、全情報を盛り込むぞーみたいに書いてあるんですけどねw


    --------------------------------------------------
    From: Hiroyuki_K <koshiishi-h@…>
    Reply-To: msi@…
    To: msi@…
    Subject: [msi:3228] torch/pyro でのパッチ作成について

    >お世話になっています。
    >Hiroyuki_Kです。
    >
    >torch/pyro でのパッチ作成に躓いてしまったので相談させてください。
    >
    >開発環境をWiX3.5からWiX3.10に移行し、WiX3.5の時と同じようにパッチを作成したところpyroの実行結果で「warning PYRO1079」と「error PYRO0227」が発生してしまいました。
    >torchではWiX3.10で作成した.wixpdb同士で.wixmstを作成しています。
    >もちろんファイルに相違がある状態で作成しており、WiX3.5では問題なくパッチを作成できていました。
    >いろいろ調べてみると、WiX3.6からこの現象が発生しているようで、詳しくはわからなかったのですが、バグの疑いがあるみたいでした・・・。
    >
    >ふと、以前とっちゃんさんがレスした内容を思い出したんですが、
    >
    >>>torch/pyro ではバージョン変わると追従できないってことですね。
    >>>となると、古の仕組みのmsimsp使うパッチ作成じゃないとダメかな。
    >>>
    >>>うちは、ファイル総数が1000を超えてた関係もあって、torchで賄うとか現実的じゃないから
    >>>一度も使ったことがないんですよねー。
    >
    >http://www.freeml.com/msi/3165
    >
    >当時はあまり気にしていなかったのですが、もしかして、WiX3.6以降からはパッチ用のWiXソースにすべてのコンポーネントをComponentRefとしてPatchFamily以下に書いておかなければならないのでしょうか?
    >WiX3.5では
    >
    ><PatchFamily Id="MyUpdateFamily" Version="1.0.0.1" Supersede="yes">
    > <ComponentRef Id="Hoge.dll"/>
    ></PatchFamily>
    >
    >と適当に書いておけば勝手にComponentRef以外のコンポーネントも差分ファイルが抽出されていたんですが・・・。
    >
    >
    >エラーログ:
    >PatchMain.wxs(5) : warning PYRO1079 : The cabinet ''RTM.cab'' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet.
    >
    >diff.wixmst : error PYRO0227 : The transform being built did not contain any differences so it could not be created.
    >
    >
    >MLホームページ: http://www.freeml.com/msi
    >
    >----------------------------------------------------------------------
    >今までダイエットに失敗してきたあなた
    >必見です!!やせる事に特化した専門店
    >ミスパリダイエットセンター☆彡☆彡
    >今なら、5,000円で体験実施中♪
    >http://ad.freeml.com/cgi-bin/sa.cgi?id=plIlS
    >------------------------------------------------------[freeml byGMO]--

    // とっちゃん(高萩 俊行)
    // http://blogs.wankuma.com/tocchann/default.aspx
    // Microsoft MVP for Visual Studio and Development Technologies
    // WindowsInstallerの話題は http://www.freeml.com/msi まで

  • MLNo.3230   Hiroyuki_Kさん  (0) 2016/09/09 18:28  [メール表示する]
    Hiroyuki_Kです。

    とっちゃんさん、ありがとうございます。

    -p パラメータは以前から指定しており、これによってComponentRefしていないコンポーネントも対象になっているのだと思っています。

    >>もしかすると、wixpdb に書き込まれてるオリジナルファイルのソースパスが、1.0.0.0 と 1.0.0.1 で別パスになってないとダメとか
    そういうのがあるのかもしれません。

    それ、ありえるかもしれませんね。
    どこかでそんなようなレスを見た気がしますので試してみます!


    >>なにかあるかねぇ?とリファレンスを見ていたら、<All /> というタグを見つけました。

    それは知りませんでした。
    試してみます。


    PatchFamilyエレメントを見てたらFeatureRefなるエレメントがあったので、これはComponentRefより楽だと思い全Featureを追加してみたら「warning PYRO1079」は変わらず出るものの、「error PYRO0227」が出なくなり.mspを作成することはできました。
    がっ!!Orcaでパッチを当ててみると見事にコンポーネントは更新されていませんでした。
    やはり、根本的にコンポーネントが「変更あり」と認識されていないみたいですので、この辺りを掘り下げていこうと思います。

  • MLNo.3231   Hiroyuki_Kさん  (0) 2016/09/12 14:03  [メール表示する]
    Hiroyuki_Kです。

    いろいろ調べてみましたが、やはり

    >>もしかすると、wixpdb に書き込まれてるオリジナルファイルのソースパスが、1.0.0.0 と 1.0.0.1 で別パスになってないとダメとか
    そういうのがあるのかもしれません

    これが原因みたいです。
    WiX3.5まではそんなことは無かったのですが、WiX3.6からこの辺の仕様が変わったみたいですね。
    ↓でRob Menschingが回答していますが、ソースファイルとターゲットファイルがローカルにある状態でなければいけない、つまり、別々のパスに存在している状況でないとだめみたいです。

    http://stackoverflow.com/questions/16044848/creating-a-wix-patch-from-single-file-location

    テスト用に作ったサンプルでは正常にパッチを作成できていたので、WiXツール自体に問題があったというわけでもありませんでした。

    というわけで、、、
    既存の方法では作れなくなってしまったということは確定で、今更開発システムを変更できないので、私もPCPを使ったパッチ作成に乗り換えざるを得なくなってしまいました。(パッケージの展開に時間が掛かるから嫌なんだよなぁ・・・)

    参考
    http://cml.s10.xrea.com/ej/WiX/patch_building.htm


    以上です。
    ありがとうございました。


メールへの返信はMLのメンバーしかできません。

更新順メールリスト