この質問に対する完全な回答は私にもなかなか出来ないので「回答発言」とはしておりません。
私は仕事でInstallShield for WindowsInstallerを使用していたことがあるので、多少はこの問題に関して知識がありますが、そうでないと全く見当もつかない問題だと思います。おまけにWindowsというOSそのものの「作り」に深く関わる問題であり、一概にWindowsといっても、95,98,Me,NT4,2K,XPそれぞれで少しずつ事情が異なってくる非常に厄介な問題です。当然、MSI、あるいはWindows自体のバグも関わっていたりします。
Windows Installerの自己修復機能がいったい何を行っているのか詳しく知りませんのではっきりとしたことはいえませんが、インストール元のmsiファイルや上書きされる前のファイルがどこにも存在しなければ修復も出来ないのではないでしょうか?つまりこれらのファイルを削除すれば修復も出来なくなると思うのですが。(多分それは無理ということだとは思いますが。)
私は、VSIなるものでインストーラを作った経験がなく、あるのは InstallShield for WindowsInstaller(以後、ISWI)ですので、開発ツールの持っている機能で異なる点があるかと思います。また、VSIでどのようにインストーラを作成したのかも、アップグレードのインストール方法も、分っていないので、私が正確な回答を示すことはまず不可能だと思っています。ですから、どぼんさんからの質問も踏まえ、MSIの基本的なことを説明するので、後は指向錯誤で対策を見つけて頂くしかありません。
%windir%\Installerにmsiのコピーがおかれる件ですが、私がVisual Studio Installerで作成したmsiについて自分のパソコンにインストールしてみたところ(「勝手にビューアVer0.64」というやつです)、やはり元のmsiと%windir%\Installerに出来るmsiは違うようですが。サイズが全然違います(1.74MBと214KB)。InstallShieldの場合と違うのでしょうか(InstallShieldはmsiにファイル自体は含めないとか)。それとも私がどこか抜けているのでしょうか(自信がなくなってきた...)。
>Kamaliさん、いつもありがとうございます。
>
>%windir%\Installerにmsiのコピーがおかれる件ですが、私がVisual Studio Installerで作成したmsiについて自分のパソコンにインストールしてみたところ(「勝手にビューアVer0.64」というやつです)、やはり元のmsiと%windir%\Installerに出来るmsiは違うようですが。サイズが全然違います(1.74MBと214KB)。InstallShieldの場合と違うのでしょうか(InstallShieldはmsiにファイル自体は含めないとか)。それとも私がどこか抜けているのでしょうか(自信がなくなってきた...)。
はじめましてryuseiともうします
とても初歩的な質問になってしまうかもしれませんが、WindowsInstallerを使用してインストールを行いましたが、その後のバージョンアップを行いたいのですが、インストール時に「ファイルを常に上書きする」という指定はどこで行えるのでしょうか?
VBに適したインストーラを探そうの中でVisual Studio Installerでバージョンを比較してコピーの欄に"○"が付いていたのですが、どのように行えばよいのでしょうか?
>とても初歩的な質問になってしまうかもしれませんが、WindowsInstallerを使用してインストールを行いましたが、その後のバージョンアップを行いたいのですが、インストール時に「ファイルを常に上書きする」という指定はどこで行えるのでしょうか?
>VBに適したインストーラを探そうの中でVisual Studio Installerでバージョンを比較してコピーの欄に"○"が付いていたのですが、どのように行えばよいのでしょうか?
>とても初歩的な質問になってしまうかもしれませんが、WindowsInstallerを使用してインストールを行いましたが、その後のバージョンアップを行いたいのですが、インストール時に「ファイルを常に上書きする」という指定はどこで行えるのでしょうか?
>VBに適したインストーラを探そうの中でVisual Studio Installerでバージョンを比較してコピーの欄に"○"が付いていたのですが、どのように行えばよいのでしょうか?
最近、一部ファイルのリリース(バージョンアップ)が必要となり、ネットワーク経由での単純ファイルコピーによりモジュールを入れ替えた(上書きコピーした)ところ、Windows Installerの自己修復機能により、旧ファイルへと書き戻されてしまいました。入れ替えたファイルの種類はexeファイルと独自のデータファイルだったのですが、exeファイルは入れ替わらず(修復されず)、データファイルのみが旧バージョンへと書き戻されてしまいます。
orcaでMSIを覗いてみてふと気がついたのですが、exeファイルはバージョンを持っていて上書きしたexeの方が新しいため上書きされなかった、データファイルは単にタイムスタンプが一致しない(新しいのに)ため破損と判断されて上書きされた…、のでしょうか。
インストール後にこの自己修復機能を切ることはできないものか、この回避方法をご存知の方がいらっしゃいましたら、ご教授いただけないでしょうか。
なお、初期インストールはAdminで行い、実行は一般ユーザで行なっていたのですが、一般ユーザの場合にはこの事象がおこらず、Adminでのみ発生します。
ちなみに「ちょおぶいびぃ会議室」さんにも同様の質問をしていますが、今のところレスを頂いておりませんの、こちらにも質問させて頂いております。
どうかご容赦ください。