C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

msi作成について

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■84976 / inTopicNo.1)  msi作成について
  
□投稿者/ ド素人 (1回)-(2017/08/31(Thu) 09:43:24)

分類:[VB.NET/VB2005 以降] 

こんにちは。
VB2010で開発したWindowsフォームアプリの、
msiを作成したのですが、バージョンを変更し再度msiを作成し、
インストールすると、『別のバージョンの製品が既にインストールされています。…』と表示されます。

msiを作成する場合の留意点をご教授願います。

例)Ver.1.0.0→上書き又は削除→Ver.1.0.1

引用返信 編集キー/
■84978 / inTopicNo.2)  Re[1]: msi作成について
□投稿者/ とっちゃん (452回)-(2017/08/31(Thu) 10:34:48)
No84976 (ド素人 さん) に返信
> こんにちは。
> VB2010で開発したWindowsフォームアプリの、
> msiを作成したのですが、バージョンを変更し再度msiを作成し、
> インストールすると、『別のバージョンの製品が既にインストールされています。…』と表示されます。
>
> msiを作成する場合の留意点をご教授願います。
>
> 例)Ver.1.0.0→上書き又は削除→Ver.1.0.1
>
msiの作成は何を使いましたか?

Visual Studio のセットアップ作成ツールであれば、
セットアッププロジェクトのプロパティに
RemovePreviousVersions というプロパティがあります。
これが True になっていないと以前のバージョンを削除してくれません。

また、セットアップの Version を挙げるときに、ProductCode を変更するか?
というようなことを聞かれたはずです。
VSのセットアッププロジェクトは、ProductCode が同じままバージョンアップする方式
に対応していません(この形式を Minor Upgrade/Minor Updateと呼ぶ)。

VSのセットアップで、以前のバージョンをアンインストールして
新しいバージョンを自動的にインストールするためには

1.UpgradeCode は変えないように注意する
2.RemovePreviousVersions を True にする
3.インストーラのVersionを挙げる際、ProductCode を変更する

の3つを行えば、自動的に旧バージョンをアンインストールしてくれるはずです。

それと、実際にインストールするプログラムも、インストーラの更新に合わせて
AssemblyFileVersion 属性をアップしておく必要があります。
この値が同じまま、同じ場所にインストールするとファイルの内容が変わっていても
インストール済みのファイルがそのまま残ります。
なお、AssemblyVersion 属性はインストーラでは参照されませんので、こちらはインストーラの
観点からは任意の値のままでも問題はありませんが、アセンブリの参照関係や
厳密名の作成などで参照されることがあるので、そのあたりの兼ね合いできちんと
管理する必要はあります。

引用返信 編集キー/
■84979 / inTopicNo.3)  Re[2]: msi作成について
□投稿者/ ド素人 (4回)-(2017/08/31(Thu) 11:00:39)
No84978 (とっちゃん さん) に返信
> ■No84976 (ド素人 さん) に返信
>>こんにちは。
>>VB2010で開発したWindowsフォームアプリの、
>>msiを作成したのですが、バージョンを変更し再度msiを作成し、
>>インストールすると、『別のバージョンの製品が既にインストールされています。…』と表示されます。
>>
>>msiを作成する場合の留意点をご教授願います。
>>
>>例)Ver.1.0.0→上書き又は削除→Ver.1.0.1
>>
> msiの作成は何を使いましたか?
>
> Visual Studio のセットアップ作成ツールであれば、
> セットアッププロジェクトのプロパティに
> RemovePreviousVersions というプロパティがあります。
> これが True になっていないと以前のバージョンを削除してくれません。
>
> また、セットアップの Version を挙げるときに、ProductCode を変更するか?
> というようなことを聞かれたはずです。
> VSのセットアッププロジェクトは、ProductCode が同じままバージョンアップする方式
> に対応していません(この形式を Minor Upgrade/Minor Updateと呼ぶ)。
>
> VSのセットアップで、以前のバージョンをアンインストールして
> 新しいバージョンを自動的にインストールするためには
>
> 1.UpgradeCode は変えないように注意する
> 2.RemovePreviousVersions を True にする
> 3.インストーラのVersionを挙げる際、ProductCode を変更する
>
> の3つを行えば、自動的に旧バージョンをアンインストールしてくれるはずです。
>
> それと、実際にインストールするプログラムも、インストーラの更新に合わせて
> AssemblyFileVersion 属性をアップしておく必要があります。
> この値が同じまま、同じ場所にインストールするとファイルの内容が変わっていても
> インストール済みのファイルがそのまま残ります。
> なお、AssemblyVersion 属性はインストーラでは参照されませんので、こちらはインストーラの
> 観点からは任意の値のままでも問題はありませんが、アセンブリの参照関係や
> 厳密名の作成などで参照されることがあるので、そのあたりの兼ね合いできちんと
> 管理する必要はあります。
>

無事解決しました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ