DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VS2008インストーラーについて

環境/言語:[VS2008 C# Framework3.5]
分類:[インストーラ]

お世話になります

VS2008のインストーラーですが、
DetectNewerVersin=yes
RemovePreviousVersion=yes
にし、
プログラムの発行のところでバージョンを発行し、
インストーラー(msi)を作成いたしました。

@version3.0.5をインストール→正常
Aversion3.0.6をインストール→正常

が、Aで確かに上書きのように新しいバージョンになっているのですが、
古いバージョンのアンインストールが呼び出されません。
これは見た目の問題でバックグラウンドで削除されているということでしょうか?
この設定を初めてしたため、私的にはアンインストール画面の後に、インストールの画面が走ると思ったのですが・・・・・・

アンインストールの画面は出ないということでいいのでしょうか。。。。
補足ですが・・・・・
@version3.0.5.0をインストール→正常
Aversion3.0.6.0をインストール→正常

というのはマイナーバージョンの変更のため、アンインストールは出ない・・・
ということになりますか?

ただ、Detct・・・・・ Remove・・・・の設定だけでは、
例えばAの後に@を入れたとき、インストールはそのまま走り
ますが、programfilesの中身はAのままです。
プログラムの追加と削除の一覧にはプロジェクトが二つ(@とA)が
表示されてしまいます。

VSのプロジェクトのプロパティで「発行」というものがありましたのでもしかして
と思い、「発行」タグのバージョンをファイルバージョンと同じものを入れて
@とAを作成したところ、Aの後に@を入れると
「このプロダクトの新しいバージョンがすでにインストールされているため
インストールできません」
でひっかかってくれました。

「発行」タグも変えないといけないのでしょうか・・・・
InstallShieldしか使ったことがないので、正しくアドバイスできるか少々、不安ですが。

プログラムの追加と削除で2つ出るということは、パッケージコードやアップグレードコード等のの整合性が2つのバージョンで取れていないと見受けられますが。
(2つのアプリは別製品として認証されています)

各種コードは下記を参照すると分かりやすいかと。
http://q.hatena.ne.jp/1116416643

各種アップグレードの違いは下記のサイトが分かりやすいです。
http://re-thinkthings.spaces.live.com/blog/cns!1C5AE98DA3645F42!405.entry

VS2008インストーラーでこれらのプロパティを合わせてあげれば問題なく動作すると思います。
(今回はアップグレードコードを統一してあげればいいと思いますが)
追加で。

現状だと古いほうのアンインストーラはアプリの追加と削除から消えないと思いますので、「窓の手」か何かを使ってインストール情報を削除した方がいいかと。
■No26364に返信(キャンディさんの記事)
> VSのプロジェクトのプロパティで「発行」というものがありましたので・・・

それ ClickOnce ですよ。VS 標準のインストーラーとは別物です。
http://www.atmarkit.co.jp/fdotnet/clickonce/index/index.html

通常のインストーラーは、Setupプロジェクトで作ります。
http://msdn.microsoft.com/ja-jp/events/dd282856.aspx
ひらぽんさん
お返事ありがとうございます。
VS2008のアプリケーションのプロパティでの「発行」タグというものがありまして
そちらのバージョン情報です。

一応、アップグレードコードというものは前から変えておりません。
但し、アプリケーションのプロパティにある「発行」タグの中のバージョンは
前まで何も触っておらず、1.0.0.0という風になっていました。
そこをファイルバージョンなどと同じようにしたらそれ以降は古いバージョンでも
引っかかるのですが、変更していないふるいバージョンのときは入ってしまう・・・
という現象です。

インストーラーは標準のSETUPプロジェクトで作成しております。
・・・・・・


■No26368に返信(ひらぽんさんの記事)
> ■No26364に返信(キャンディさんの記事)
>>VSのプロジェクトのプロパティで「発行」というものがありましたので・・・
>
> それ ClickOnce ですよ。VS 標準のインストーラーとは別物です。
> http://www.atmarkit.co.jp/fdotnet/clickonce/index/index.html
>
> 通常のインストーラーは、Setupプロジェクトで作ります。
> http://msdn.microsoft.com/ja-jp/events/dd282856.aspx
■No26372に返信(キャンディさんの記事)
> VS2008のアプリケーションのプロパティでの「発行」タグというものがありまして
> そちらのバージョン情報です。
>・・・・・・
> インストーラーは標準のSETUPプロジェクトで作成しております。

そちらは CllickOnce で発行する際のバージョンの設定になりますので
Setup プロジェクトとは関係ありません。

標準の Setup プロジェクトのバージョンは、Setup プロジェクトを選択し、
プロパティウィンドウの「Version」で設定します。
■No26373に返信(ひらぽんさんの記事)
> ■No26372に返信(キャンディさんの記事)
>>VS2008のアプリケーションのプロパティでの「発行」タグというものがありまして
>>そちらのバージョン情報です。
> >・・・・・・
>>インストーラーは標準のSETUPプロジェクトで作成しております。
>
> そちらは CllickOnce で発行する際のバージョンの設定になりますので
> Setup プロジェクトとは関係ありません。
>
> 標準の Setup プロジェクトのバージョンは、Setup プロジェクトを選択し、
> プロパティウィンドウの「Version」で設定します。
>

ありがとうございます
もちろん SetupプロジェクトのプロパティウィンドウのVersionにも設定しております

それで
EXEをつくりインストールし、
またバージョンをあげてインストールするときは、前のバージョンを消して
インストールしてくれるのですが、
その後最初のEXEをインストールすると普通は新しいバージョンが入っているから
メッセージが出ると思いますが、

発行タブのバージョンがそのままのとき、古いバージョンを入れるときにチェックに引っかかってくれないのです(T_T)

念のため、「発行」タブのバージョンを同じように設定して、手順をやり直すと
古いバージョンを入れようとするとチェックしてくれます。。。。。

勘違いでしょうか。。。。
もう一度確認しなおしてみます
う〜ん、ちょっとすぐには検証できそうもないので、
まずは関連情報としてここの TIPS を挙げておきます。

http://dobon.net/vb/dotnet/deployment/upgrades.html
http://dobon.net/vb/dotnet/deployment/overwrite.html

何かの参考になれば幸いです。
■No26388に返信(ひらぽんさんの記事)
> う〜ん、ちょっとすぐには検証できそうもないので、
> まずは関連情報としてここの TIPS を挙げておきます。
>
> http://dobon.net/vb/dotnet/deployment/upgrades.html
> http://dobon.net/vb/dotnet/deployment/overwrite.html
>
> 何かの参考になれば幸いです。
>

ありがとうございます。
こちらで確認したところ、アプリケーションの「発行」タブのバージョン情報を
アセンブリ情報内の各バージョンにあわせれば、特に「今すぐ発行」など実行せずとも
旧バージョンをインストールするときチェックしてくれました。
(初期値の1.0.0.0のままだと旧バージョンのチェックはしてくれませんでした)
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板