トップ回答者
Windows 7+セットアップウィザードで、バージョン番号を上げずにインストーラーのテストを行うことはできませんか?

質問
-
Visual Studio 2008 ProfessionalのVisual BasicとWindows 7 Professionalで質問です。
Visual Basic 2008で作成したソフトをセットアップウィザードでビルドしました。しかし、修正前と修正後で、VB開発元プロジェクトプロパティ→アプリケーション→アセンブリ情報で同じバージョン番号を付け、インストール動作のテストをした場合に問題が発生しました。
前回作成したソフトは確かにアンインストールしたにもかかわらず、今修正したバージョンをインストールすることができません。
代わりに、前にインストールされたバージョンが勝手に復元される症状が発生しました。おそらく、コントロールパネル→システム→システムの保護で、ハードディスクの保護設定が有効になっていることが原因だと思います。
しかし、この件のためだけに解除したくはありません。
ソフトの内部バージョンをあげれば復元されないのですが、同様にWindows 7テストの為だけ毎度バージョン番号を変えるというのはしたくありません。
私はテストが完了して公開するときにだけバージョンを上げたいと考えています。同じ質問を人力検索で行った際は、アセンブリキャッシュの削除を勧めていただいたのですが
私の作成しているソフトは、GACへ登録されていることはなかったようです。
[人力検索] Windows 7 ProfessionalとVisual Studio 2008 Professionalで質問です。
http://q.hatena.ne.jp/1264662979何かうまい解決策をお持ちの方よろしくお願いいたします。
回答
-
結局、プログラムインストール先からプログラムを削除するプログラムを作成し、アンインストール時に起動させるようにすることで対処しました。1.インストール時に、レジストリへ保存先を記録する2.アンインストール時に、ファイル削除プログラムを起動するようにするアンインストール先は、1の値を参考とする3.Windows7 64bitだと、Windows XPなどとは1で指定先した先とは別の場所へレジストリが保存されるので気を付ける※Any CPUを指定しても32bit扱いになる4.保存先がProgram Filesである場合、Windows7ではUACでアンインストールプログラムからファイル削除が拒否されるので、マニュフェストファイルを作成して回避する以上です。
- 回答としてマーク くじぇ 2010年2月28日 15:02
すべての返信
-
くじぇさん、こんにちは。
こちらでも"セットアッププロジェクト"を使用し、
インストーラー作成->インストール->コントロールパネルからアンインストール->DLL修正->再度インストーラー作成->インストール
を繰り返しましたが、同じバージョンでもファイルの更新が出来ました。
もしかするとタイミングの問題なのかもしれませんが。。。別の環境でも同じような問題が起きるのでしょうか?
再インストール後は、新しいDLLに置き換わるが、時間が経つと、古いDLLに置き換わるのでしょうか?別途テストマシンを用意して、ハードディスクの保護を無効にしてテストを行うやり方で回避できないでしょうか?
あまり良いアドバイスが出来なくてすみません。。。もし良いアイディアがありましたら、ご投稿の程、宜しくお願いします。
マイクロソフト株式会社 フォーラム オペレーター 高橋春樹 -
結局、プログラムインストール先からプログラムを削除するプログラムを作成し、アンインストール時に起動させるようにすることで対処しました。1.インストール時に、レジストリへ保存先を記録する2.アンインストール時に、ファイル削除プログラムを起動するようにするアンインストール先は、1の値を参考とする3.Windows7 64bitだと、Windows XPなどとは1で指定先した先とは別の場所へレジストリが保存されるので気を付ける※Any CPUを指定しても32bit扱いになる4.保存先がProgram Filesである場合、Windows7ではUACでアンインストールプログラムからファイル削除が拒否されるので、マニュフェストファイルを作成して回避する以上です。
- 回答としてマーク くじぇ 2010年2月28日 15:02