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

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

64bitOS上でのアップグレードインストールの動作について

投稿者:ひさとおさん  2012/01/23 19:55  MLNo.2724   [メール表示]

こんにちわ、初めて投稿させていただきます。
ひさとおと申します。

wixを触り始めて一点困っている事があります。

何かヒントや情報などお持ちでしたら、
ご教授願えませんでしょうか。


64bitOSでのアップグレードインストールの動作に関してなのですが、
64bitOS用インストーラ実行後、
32bit用アップグレード用インストーラを実行すると
本来であれば
?64bit用インストーラで作成したファイルが消え、
?32bit用アップグレードインストーラで作成したファイルが新たに配置される
という動作になるかと思うのですが、

こちらでサンプルを作成して検証したところ、
?64bit用インストーラで作成したファイルはそのまま残る
?32bit用アップグレードインストーラで作成したファイルが一旦指定フォルダ内にコピーされるが、インストール完了時に削除される
という動作になります。


本来はOSに合わせたインストーラを使用し、
64bitOS上では32bitインストーラが実行出来ないよう制限すべきだとは思いますが、
何故このような動作になるのかが分かりません。


お力添え頂けませんでしょうか。
# このような投稿自体も初ですので無作法ありましたらご指摘下さい。



上記動作の確認に使用したソースは
http://www.softark.net/wix/lesson04.html
⇒Sample-4-1-Upgrade.zipをベースに、
・GUIDを変更
・PFiles⇒PFiles64に変更
・コンパイル時コマンドに-arch x64追加
を行っております。
# ファイル一式を添付させていただいております


添付ファイル: Sample-4-1-Upgrade.zip
 読み込み中...

  • MLNo.2725   とっちゃんさん  (0) 2012/01/23 20:39  [メール表示する]
    とっちゃんです。

    >64bitOSでのアップグレードインストールの動作に関してなのですが、
    >64bitOS用インストーラ実行後、
    >32bit用アップグレード用インストーラを実行すると
    >本来であれば
    >?64bit用インストーラで作成したファイルが消え、
    >?32bit用アップグレードインストーラで作成したファイルが新たに配置される
    >という動作になるかと思うのですが、
    >
    >こちらでサンプルを作成して検証したところ、
    >?64bit用インストーラで作成したファイルはそのまま残る
    >?32bit用アップグレードインストーラで作成したファイルが一旦指定フォルダ内にコピーされるが、インストール完了時に削除される
    >という動作になります。
    >
    >
    >本来はOSに合わせたインストーラを使用し、
    >64bitOS上では32bitインストーラが実行出来ないよう制限すべきだとは思いますが、
    >何故このような動作になるのかが分かりません。
    >
    ざっと見た感じではどこが引っ掛かるのかわかりませんでしたが
    ショートカットファイルは同じものになるようです。
    そのあたりが影響してるのかもしれません。

    一度アップグレードの実行時に詳細ログをとって、どこで失敗しているか?を
    チェックするとよいと思います。

    それと、新しいものはインストールが成功した状態で自分のファイルが消えているのでしょうか?
    それとも、インストールに失敗してロールバックするのでしょうか?

    前者と後者では意味が変わってきます。
    動作自体は、インストール処理の完了後に RemoveExistingProducts で
    既存のものをアンインストールしているので、あとから入れた新バージョンが残るはず
    ですが、その場合でもデスクトップショートカットは消えてしまうと思います。

    ># このような投稿自体も初ですので無作法ありましたらご指摘下さい。
    >
    問題はないですよ。ZIPファイルはブロックされたけど、たぶん
    バッチファイルがあるからだろうし。。。

    // とっちゃん(高萩 俊行)
    // http://blogs.wankuma.com/tocchann/
    // Microsoft MVP for Developer Tools - Visual C++
    // WindowsInstallerの話題は http://www.freeml.com/msi まで

  • MLNo.2726   Hiroyuki_Kさん  (0) 2012/01/24 10:02  [メール表示する]
    Hiroyuki_Kです。

    一応確認ですが、アップグレードmsiを実行する時のパラメータは問題ないですか?
    チュートリアルにもあるようにスモール・アップデートおよびマイナー・アップグレードの場合、すなわち、プロダクト・コードが同じパッケージ同士の間では下記のコマンドラインで実行する必要がありますよ。

    msiexec /i SampleUpgrade.msi REINSTALL=ALL REINSTALLMODE=vomus

  • MLNo.2727   ひさとおさん  (0) 2012/01/24 10:55  [メール表示する]
    御回答ありがとうございます。

    >とっちゃん様

    アップグレードの際にログを取得致しましたが、
    失敗しているような箇所は見受けられませんでした。

    それと、新しいものはインストールが成功した状態で自分のファイルが消えているのでしょうか?
    はい。そのようです。


    > 問題はないですよ。ZIPファイルはブロックされたけど、たぶん
    > バッチファイルがあるからだろうし。。。
    確かにおっしゃる通りbatファイルが含まれておりました。
    失礼致しました。


    >Hiroyuki_K様
    言葉が足らず申し訳ございません。
    今回上記の現象が発生したのは、メジャー・アップグレードインストールの場合です。
    ベース版/バージョンアップ版でプロダクト・コードを変更しております。
    添付ファイル: Sample-4-1-Upgrade.zip install.log

  • MLNo.2728   とっちゃんさん  (0) 2012/01/24 13:45  [メール表示する]
    とっちゃんです。

    >御回答ありがとうございます。
    >
    >>とっちゃん様
    >
    >アップグレードの際にログを取得致しましたが、
    >失敗しているような箇所は見受けられませんでした。
    >
    >それと、新しいものはインストールが成功した状態で自分のファイルが消えているのでしょうか?
    >はい。そのようです。
    >
    ログ見てみました。
    1.0のインストールが c:\Program Files\... ではなく
    c:\Program Files(86)\... に行われていませんか?

    ログからはそういう風に読み取れます。
    だとすると、動きとしてこの動作は正しいとなります。

    もし、この形でもちゃんとインストール・アンインストールがうまくいくように
    ということであれば、アンインストールしてからインストールするように変更の必要があります。


    >> 問題はないですよ。ZIPファイルはブロックされたけど、たぶん
    >> バッチファイルがあるからだろうし。。。
    >確かにおっしゃる通りbatファイルが含まれておりました。
    >失礼致しました。
    >
    バッチファイルが原因じゃないみたいですね。新たに添付されてるのもブロックされてます。
    理由はわかりませんがw


    // とっちゃん(高萩 俊行)
    // http://blogs.wankuma.com/tocchann/
    // Microsoft MVP for Developer Tools - Visual C++
    // WindowsInstallerの話題は http://www.freeml.com/msi まで

  • MLNo.2729   ひさとおさん  (0) 2012/01/24 15:28  [メール表示する]
    >とっちゃん様

    御確認ありがとうございます。
    お手を取らせて申し訳ありません。

    > 1.0のインストールが c:\Program Files\... ではなく
    > c:\Program Files(86)\... に行われていませんか?
    インストールの動作としては、
    1.0のインストールは c:\Program Files\...の配下にインストールされていますので、
    この辺りがどうもおかしいようですね…

    ・64bit用インストーラ⇒64bit用アップグレードインストーラ
    ・32bit用インストーラ⇒64bit用アップグレードインストーラ
    は、それぞれ問題無く動作しているので、
    32bitOS用アップグレードインストーラ実行時の制限等があるのでしょうか…

    > バッチファイルが原因じゃないみたいですね。新たに添付されてるのもブロックされてます。
    > 理由はわかりませんがw
    こちらではブロックされずにインストールが可能でした…
    wxsソースコードをそのまま添付させて頂きたいと思います。
    ビルド指定:wix_create.txt
    ベース:SampleUpgrade.wxs
    アップグレード:SampleMajorUpgrade.wxs

  • MLNo.2730   とっちゃんさん  (0) 2012/01/24 15:43  [メール表示する]
    とっちゃんです。

    >> バッチファイルが原因じゃないみたいですね。新たに添付されてるのもブロックされてます。
    >> 理由はわかりませんがw
    >こちらではブロックされずにインストールが可能でした…
    あ、ブロックされるのは、秀丸メールのZIP受信です。
    規定があるみたいで(チェックしていない)、ブロックしないで取り込めば
    参照はできます。
    ま、ソースが見れれば現物がなくてもチェックはあらかたできますしw


    >> 1.0のインストールが c:\Program Files\... ではなく
    >> c:\Program Files(86)\... に行われていませんか?
    >インストールの動作としては、
    >1.0のインストールは c:\Program Files\...の配下にインストールされていますので、
    >この辺りがどうもおかしいようですね…
    >
    >・64bit用インストーラ⇒64bit用アップグレードインストーラ
    >・32bit用インストーラ⇒64bit用アップグレードインストーラ
    >は、それぞれ問題無く動作しているので、
    >32bitOS用アップグレードインストーラ実行時の制限等があるのでしょうか…
    >
    ふむ。。。だとすると、やはり64->32への変更が影響しているのでしょう。
    64と32では、インストール管理のレジストリキーが違うなど
    結構いろいろな違いがあります。

    その部分が影響して、おかしくなってしまうのかもしれません。

    // とっちゃん(高萩 俊行)
    // http://blogs.wankuma.com/tocchann/
    // Microsoft MVP for Developer Tools - Visual C++
    // WindowsInstallerの話題は http://www.freeml.com/msi まで


メールへの返信はMLのメンバーしかできません。
4LDK超ってこんなに広い?/SUUMO