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

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

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

Re[2]: WindowsInstaller カスタム動作について


(過去ログ 39 を表示中)

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

■20092 / inTopicNo.1)  WindowsInstaller カスタム動作について
  
□投稿者/ ノート (1回)-(2008/06/05(Thu) 15:58:07)

分類:[VB.NET/VB2005] 

Windows Installerにカスタム動作を設定し、
インストールクラスでインストール先フォルダ内のファイル処理をしたい
のですが問題が生じてしまったのでどなたかご教授願います。

カスタム動作のインストールのインストールクラスのプロパティの
CustomActionDataに/val="[TARGETDIR]を設定し

インストールクラスのオーバライドしたInstallメソッド内部で
Dim aaa As String = Me.Context.Parameters.Item("val")

ユーザが指定したインストール先を取得までは出来るのですが


カスタム動作のアンインストールのインストールクラスのプロパティの
CustomActionDataに/val="[TARGETDIR]を設定し

インストールクラスのオーバライドしたunInstallメソッド内部で
Dim aaa As String = Me.Context.Parameters.Item("val")

と指定するとWindows Installerのファイルシステムのアプリケーションフォルダプロパティの
DefaultLocationの値が取得され実際にインストールしたディレクトリ情報が取得できません。

[TARGETDIR]はこの場合使えないと思うのですが
・インストールされたフォルダを取得するWindows Installerのプロパティが存在するのでしょうか?
引用返信 編集キー/
■20096 / inTopicNo.2)  Re[1]: WindowsInstaller カスタム動作について
□投稿者/ とっちゃん (308回)-(2008/06/05(Thu) 16:44:12)
とっちゃん さんの Web サイト
No20092 (ノート さん) に返信

> カスタム動作のアンインストールのインストールクラスのプロパティの
> CustomActionDataに/val="[TARGETDIR]を設定し
>
> インストールクラスのオーバライドしたunInstallメソッド内部で
> Dim aaa As String = Me.Context.Parameters.Item("val")
>
> と指定するとWindows Installerのファイルシステムのアプリケーションフォルダプロパティの
> DefaultLocationの値が取得され実際にインストールしたディレクトリ情報が取得できません。
>
> [TARGETDIR]はこの場合使えないと思うのですが
> ・インストールされたフォルダを取得するWindows Installerのプロパティが存在するのでしょうか?

TARGETDIR の値がインストール先とは異なりデフォルトのままだとすると
その原因は、おそらくVSセットアップの構造上の問題だと思います(平たく言えば対処できない問題)。

一番簡単そうな対応策としては...
適当なサブフォルダを用意しておき、そのフォルダのパスをもらうようにして
実際の操作は親フォルダを対象にするという格好になるかと。

それでうまくいくかどうかはわかりませんが、それ以外となるとVSセットアップでは
かなり荷の重い作業になると思います(なにせ、根本部分にかかわるものなので...)。



ところで、なぜインストール時やアンインストール時にインストール先フォルダに細工が必要なのでしょう?
そこを書けば別の回避策を提示してもらえる可能性もありますよ。

引用返信 編集キー/
■20100 / inTopicNo.3)  Re[2]: WindowsInstaller カスタム動作について
□投稿者/ ノート (2回)-(2008/06/05(Thu) 16:56:41)
2008/06/09(Mon) 01:04:50 編集(投稿者)

> ところで、なぜインストール時やアンインストール時にインストール先フォルダに細工が必要なのでしょう?
> そこを書けば別の回避策を提示してもらえる可能性もありますよ。

ご回答ありがとうございます。
インストールクラスで何をしているかと言いますと

インストール時
ngen install [TARGETDIR]XXX.exe

アンインストール時
ngen uninstall [????]XXX.exe

の様にインストールしたexeに対してnegenを実行し
アンインストール時にキャシュから削除したいが為でございます。

引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -