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

.Net2005でのインストーラー作成について

環境/言語:[.NET2005]
分類:[.NET]

初投稿になります。
失礼があったらすみません。

今仕事で.net2005でアプリケーションの作成を行っています。
アクセスを使ったデータベースを使っています。

このアプリケーションを配布するためにWindows Installerにて
インストーラーを作成しています。
そこでWindows7やVistaの場合にインストールした後にデータベースの
保存先を変える必要があるのですが、その場合、インストール時とは
保存先が変わってしまっているためアンインストール時にデータベースの
削除ができません。

そこでお聞きしたいのが、
@インストール後に保存先が変わる場合に、Windows nstallerで
インストーラーを作成するときに、アンインストーラーの設定で
アンインストール時にテキストファイルなどで保存先を読み込んで
削除するような設定もしくはプログラムをする方法がありますでしょうか?


もう一点
A今はプログラミングで小手先で逃げているのですが、
インストーラー作成時にOSを読み込んで
例えばWindows7なら保存先をUserフォルダに、XPならProgramFilesに
という風にOSをチェックして保存先を変えることは可能でしょうか?

ご存じの方よろしくご教授願います。
2011/08/24(Wed) 10:33:04 編集(投稿者)

■No28940に返信(マニーさんの記事)
> このアプリケーションを配布するためにWindows Installerにて
> インストーラーを作成しています。
> そこでWindows7やVistaの場合にインストールした後にデータベースの
> 保存先を変える必要があるのですが、その場合、インストール時とは
> 保存先が変わってしまっているためアンインストール時にデータベースの
> 削除ができません。

インストーラー(.msi)はセットアッププロジェクトで作成しているという前提で進めますが、
同じPCで複数のユーザーがこのソフトを利用しますか?
また、インストール・アンインストールは管理者権限で行いますよね?
あと、データベースの保存先の変更は、インストーラーが行っていますか?
(つまり、インストーラーのカスタム動作を使用して行っている)
それとも各ユーザー毎にインストールしたソフトを起動したときにこれを行っていますか?

各ユーザーでデータベースを任意の場所に保存している場合は、ソフト側で各ユーザーの保存場所をレジストリに登録し
(例えば\HKEY_CURRENT_USER\Sofoware配下)、アンインストール時に、カスタム動作を用いて、これらのレジストリの登録内容(\HKEY_USERSから探す)をもとに
データベースファイルの削除を行えばよいのではないでしょうか?
もちろん、テキストファイル等にデータベースの保存場所を書き込み、アンインストール時にカスタム動作を用いてこのテキストファイルを探し、
これをもとにデータベースファイルの削除を行うという方法でもいいでしょう。

■カスタム動作について
 http://dobon.net/vb/dotnet/deployment/customaction.html
> インストーラー(.msi)はセットアッププロジェクトで作成しているという前提で進めますが、
> 同じPCで複数のユーザーがこのソフトを利用しますか?
基本的には1つの管理者権限で使用してもらいます。

> また、インストール・アンインストールは管理者権限で行いますよね?
はい管理者権限です。

> あと、データベースの保存先の変更は、インストーラーが行っていますか?
> (つまり、インストーラーのカスタム動作を使用して行っている)
> それとも各ユーザー毎にインストールしたソフトを起動したときにこれを行っていますか?
カスタム動作についてはすみません知識不足です。
基本的にはインストーラーの設定で保存先を決めていて、
小手先でインストール後にソフトを起動したらOSをチェックして
windows7なら保存先を変えるようにしています。
保存先についてはインストール時もインストール後も自由に保存先を変えることが出来る仕様です。

> 各ユーザーでデータベースを任意の場所に保存している場合は、ソフト側で各ユーザーの保存場所をレジストリに登録し
> (例えば\HKEY_CURRENT_USER\Sofoware配下)、アンインストール時に、カスタム動作を用いて、これらのレジストリの登録内容(\HKEY_USERSから探す)をもとに
> データベースファイルの削除を行えばよいのではないでしょうか?
> もちろん、テキストファイル等にデータベースの保存場所を書き込み、アンインストール時にカスタム動作を用いてこのテキストファイルを探し、
> これをもとにデータベースファイルの削除を行うという方法でもいいでしょう。
>
> ■カスタム動作について
>  http://dobon.net/vb/dotnet/deployment/customaction.html
ありがとうございます。カスタム動作について勉強してみます。
現状Orcaというツールでmsiファイルを書き換えるというのを調査しているところでした。早速拝見させていただきます。

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