- PR -

vs2008で作成したインストーラーの入替え

投稿者投稿内容
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2008-06-12 15:16
いつも参考にさせていただいてます。

今回も助けて頂きたく投稿しました。
vs2008でファイルシステムを使ってインストーラー(msi)を作成しています。
そこで、初めに作成したプログラムに変更が入ったので
ファイルを入れ替えてビルドしたのですが、新しく生成されたmsiで
インストールすると古いファイルを認識したままでエラーになってしまいます。

どこに古いファイルが残っているか、つかんでいるか良くわからないので
どなたかご教示下さい。

※ビルドは念のためソリューションのクリーンをした後に実行しています。
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2008-06-12 16:39
バージョンを上げる必要があります。
更新したEXEも、インストーラも。

インストーラのバージョンを上げると、プロダクトコードを変更するか?と聞かれるので
そこで、ハイと答えてください。

それで、ビルドすると自動的に古いバージョンをアンインストールして
新しいバージョンをインストールしてくれます。

インストーラのバージョンは、ソリューションエクスプローラで
セットアップのプロジェクトを選択し、プロパティウィンドウを表示すると
その一番下にあります。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2008-06-12 17:48
引用:

それで、ビルドすると自動的に古いバージョンをアンインストールして



ダウト。

古いバージョンをアンインストールして「から」新しいバージョンのインストールを行うようにするためには、デプロイメントプロジェクトの RemovePreviousVersions プロパティを True に設定する必要があります。(デフォルトは False のはず)

お、ついでで MSDN ライブラリを見たら、RemovePreviouseVersions = True 時の挙動が VS2008 で変更された、って書いてあるのを発見。

--ここから--
Visual Studio 2005 では、v1.0.0 から v1.0.1 へのアップグレード時にカスタム動作が次のように呼び出されました。

v1.0.0 custom action Uninstall()

v1.0.1 custom action Install()

Visual Studio 2008 では、次のように、アンインストール動作は呼び出されません。

v1.0.1 custom action Install()
--ここまで--
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2008-06-12 18:25
とっちゃんさん、渋木宏明(ひどり)さん
回答ありがとうございます!

実は今のところうまくいっていません。。。
プロジェクトを新しく作り直して上で
「RemovePreviousVersions=true」
「Version」→カウントアップ
してインストーラーを作成したのですが、古いままです。

何がいけないのでしょうか?
これから「RestartWWWService」(IISの再起動)もtrueにしてやってみます。
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2008-06-12 18:29
あ、RemovePreviousVersions プロパティはすっかり忘れてた。
それ設定しないと古いの抜かずにインストールしちゃいますね。

へぇ..VS2008 ではアップグレードでアンインストール処理は一部省略なんだ。

それに、引っかかるインストーラが出てきそうな気がしますね。

個人的には、アンインストールのアクションを呼び出すときに自動で
パラメータか何かをせっとして、プロパティチェックできるようになる
とかだとありがたいなぁ...
test
会議室デビュー日: 2008/04/01
投稿数: 9
お住まい・勤務地: 古の都
投稿日時: 2008-06-12 18:33
引用:

渋木宏明(ひどり)さんの書き込み (2008-06-12 17:48) より:
引用:

それで、ビルドすると自動的に古いバージョンをアンインストールして



#snip

Visual Studio 2008 では、次のように、アンインストール動作は呼び出されません。

v1.0.1 custom action Install()
--ここまで--



なので、自力でアンインストール動作を呼び出さなきゃいけないんじゃないかな?かな?
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2008-06-12 18:46
すみません。
ちなみにサーバー側では「プログラムの追加と削除」で
アンインストールしてるのですがダメみたいです。。。(T_T)
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2008-06-12 19:17
事故レスです(爆)
インストーラー使わずに直にサーバーにDLLを配置しても
「昔のaspxがありません!」というエラーになるということは
サーバーが何かつかんでたり覚えちゃってたりするんでしょうか。。。

むむむ。。。むずい(T_T)

スキルアップ/キャリアアップ(JOB@IT)