- PR -

Windowsアプリのインストールフォルダを知る

投稿者投稿内容
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-12-29 19:38
引用:

なぜでしょう?



技術上の問題ってほどの強い理由ではないけど

1.インストールを行わないと情報の取得ができない=開発がやりにくい
2.一般的に、MSI レポジトリからの情報取得はかなり遅い(経験則)
3.インストーラエンジンの仕様が変わったらそのせいでアプリの保守が発生する

などのいくつかの細かい理由から、僕は総合的に避けることにしています。

# 1 の「開発がやりにくい」だけで僕としては十分な理由になります。
# 3 はオマケぽいけど、一応。受託系だと保守の予算確保が少し難しいかな、と。

引用:

もっとも、installer で upgrade install するとか patch を適用するとか、そういう方法をとるべきだと思いますが。



まったくそのとおりデス。


[ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2007-12-29 20:17 ]
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-12-29 21:13
引用:

引用:
ですが、レジストリを含めて、ここら辺の情報は「インストーラエンジン用」の情報が格納されているわけで、それをアプリケーションの都合で参照するのはやめといた方が基地だと思います。



なぜでしょう?



ごめんなさい、状況を取り違えてました。

アプリケーション自身が自分のインストール先ディレクトリを取得したいとかゆー話じゃなかったですね。

アプリケーション自身ではなく、「別ツールで、後追いでインストールディレクトリを調査する」という目的なら、ちゃっぴさんの紹介してる方法で全く問題ありません。

でも

引用:

もっとも、installer で upgrade install するとか patch を適用するとか、そういう方法をとるべきだと思いますが。



については引き続きYESです。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-12-29 22:21
引用:
アプリケーション自身ではなく、「別ツールで、後追いでインストールディレクトリを調査する」という目的なら、ちゃっぴさんの紹介してる方法で全く問題ありません。



よかったです。なお、

引用:
アプリケーションのインストールフォルダを必要としているということは
インストーラでインストールを行ったアプリケーションということでしょうか。
だとすれば、勝手に書き換えると修復機能が働いて元に戻る可能性はないですか。
(正式な名前は忘れたけど、そういう機能がありますよね)



このような機能は OS にはありますけど、一般的な application には適用されないですね。
Windows Resource Protection
_________________
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-12-29 23:36
引用:

このような機能は OS にはありますけど、一般的な application には適用されないですね。



いいえ。

Windows Installer にも修復機能があるので、Windows Installer を使ってインストールしたファイルを安易に上書き更新してはいけません。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2008-01-03 16:17
引用:
Windows Installer にも修復機能があるので、Windows Installer を使ってインストールしたファイルを安易に上書き更新してはいけません。



これは基本的に手動で修復した場合の話ですよね?

もっとも、Microsoft Office Applications のように中には自動修復機能が含まれているものもありそうですが。。。ただ、Microsoft Office Applications でも file が置き換わっただけでは自動修復は走らなかったと思う。
_________________
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2008-01-03 19:38
引用:

これは基本的に手動で修復した場合の話ですよね?



とは限りませんが、VS のデプロイメントプロジェクトでちゃちゃっと作った .msi では修復が自動で走ることはないでしょうね。

引用:

もっとも、Microsoft Office Applications のように中には自動修復機能が含まれているものもありそうですが。。。ただ、Microsoft Office Applications でも file が置き換わっただけでは自動修復は走らなかったと思う。



Office の実行時修復も Windows Installer の機能を利用しています。

ファイルを置換した時点では修復はおきませんが、上書きされたファイルを含む機能(およびそれに依存する機能)を実行しようとした時にファイル修復が走る可能性があります。

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