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

わんくま同盟

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

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

■102428 / 2階層)  セットアッププロジェクトにて、ファイル更新条件
□投稿者/ kiku (378回)-(2023/09/28(Thu) 09:07:12)
No102426 (とっちゃん さん) に返信
>>■No102424 (kiku さん) に返信
> >>2回目のインストール直後に、
> >>設定ファイルの中身をcにすることはできますでしょうか?
>>
> 設定ファイルをbの状態にというのは、どこにある設定ファイルを
> いつどのタイミングで誰がどうやって変更したのでしょうか?
インストーラで設定ファイルを配置し、
アプリから設定ファイルの内容を変更する想定です。

> インストーラがファイルを更新する条件は以下リファレンスをまずはお読みください。
>
> ・ファイルのバージョン管理ルール
> https://learn.microsoft.com/ja-jp/windows/win32/msi/file-versioning-rules?WT.mc_id=DT-MVP-32182
ありがとうございます。
更新日時で見るんですね。
デフォルトの動作ということで理解しました。

> アプリで作成するのであればインストーラが知らないファイルになりますので
> インストーラで削除するように設定する必要があります。
> (VSIではファイルを削除する設定がないので、別途設定が必要)。
>
> RemoveFile Table に追加すれば対応できますが自分でスクリプトを書くか(wirunsql.vbsを利用)
> Orcaなどで、あらかじめ差分データを作っておいてそれをMsiMergeなどを利用して
> ビルド後イベントなどで合成することになります。
>
> ・RemoveFile テーブル
> https://learn.microsoft.com/ja-jp/windows/win32/msi/removefile-table?WT.mc_id=DT-MVP-32182
この件は、あとでゆっくり調査させてください。

>>なら、アンインストール後に、バッチファイルなどを起動し、
>>そのバッチファイルにて、インストール先のフォルダを
>>すべて削除してしまえば、やりたいことが実現できるのではないかと思い
>>実験したところうまく行きました。
>>
> これもありですが、WindowsInstaller的には最後手段ですね。
> (どうしても設定レベルでは制御できない特殊な部分で利用する方法)
今はこの方法が簡単そうなので
定石ではないのだと思いますが、
こちらの方法で検討したいと思います。

> カスタム動作で呼び出すプログラムにパラメータを渡すなどが一般的です。
> 呼び出すバッチファイルを選択してプロパティを表示し Arguments に
> インストールパス(「"[TARGETDIR]\"」と「」の内側をセット)すれば
> 行けると思います。
> 旨く行ってるかどうかは、バッチファイルの行頭で
> ECHO %1
> PAUSE
> などとやって、確認するとよいでしょう。

上記をヒントにいろいろ実験してみました。
CustomActionプロパティのSourcePathが編集できなかったため、
いろいろ検索したところ、下記の方法で動作することを確認しました。

起動スクリプトをaaa.vbsに変更。
CustomActionプロパティのCustonActionDataに[TARGETDIR]を設定。
aaa.vbs内にて、下記を実施することでパスを取得できました。
val = Session.Property("CustomActionData")

ご回答頂きありがとうございました。
アドバイス頂いたことをヒントに解決することができました。
大変助かりました。

解決済み
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: セットアッププロジェクトにて、ファイル更新条件 /とっちゃん 返信無し
 
上記関連ツリー

セットアッププロジェクトにて、ファイル更新条件 / kiku (23/09/27(Wed) 15:31) #102424
Re[1]: セットアッププロジェクトにて、ファイル更新条件 / kiku (23/09/27(Wed) 17:27) #102425
Re[1]: セットアッププロジェクトにて、ファイル更新条件 / とっちゃん (23/09/27(Wed) 20:31) #102426
  └ セットアッププロジェクトにて、ファイル更新条件 / kiku (23/09/28(Thu) 09:07) #102428 解決済み ←Now

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信