基本の MSI プロジェクトを作成するために installshield 11 を使用しています。私の要件は、プロジェクトをアンインストールするときに、特定のファイルを保持したいということです(アンインストールが行われるときにこれらの特定のファイルを削除したくない)。さらに、これらのファイルはコンポーネントの一部ではありませんが、特定の場所から copyfile (スクリプト) コマンドを使用して、インストール プロセス中に作成 (コピー) されます。
-開発者
基本の MSI プロジェクトを作成するために installshield 11 を使用しています。私の要件は、プロジェクトをアンインストールするときに、特定のファイルを保持したいということです(アンインストールが行われるときにこれらの特定のファイルを削除したくない)。さらに、これらのファイルはコンポーネントの一部ではありませんが、特定の場所から copyfile (スクリプト) コマンドを使用して、インストール プロセス中に作成 (コピー) されます。
-開発者
無効 (LOGGING)...有効 (LOGGING) を使用します。これらのメソッドの間に CopyFile() を使用すると、アンインストールでファイルが削除されなくなります
Balachandra さん、ご回答ありがとうございます。
保存したいファイルがCopyFileで作成され、copyfileコマンドで言及した対象のディレクトリが存在しません。そのため、CopyFile はフォルダーを作成し、ファイルをそのフォルダーにコピーします。そのため、installsheild の dir テーブルにこのフォルダー エントリがないことは明らかです。
しかし、このアプローチは役に立ちません。アンインストールすると、コピーされたすべてのファイルがこのフォルダーから削除されます。-開発者
Windows インストーラーは、インストールしたファイルとフォルダーのみを削除します。これは、ファイル テーブルとフォルダ テーブルのデータベースに存在する各ファイルです。フォルダーの場合と同様に、ファイル テーブルにエントリがないファイルは削除されません。
また、フォルダが空でない場合、そのフォルダはアンインストール中に削除されません。
Copyfile スクリプトを使用していくつかのファイルをインストールする場合 (カスタム アクションを使用している可能性があります)、それらのファイルはアンインストール中に削除されません。
ありがとう、アラーター、私はこれと 2 日間戦ってきた。
サンプル構成ファイルをインストールし、そのコピーを作成します (最初のインストール時)。お客様が構成ファイルを変更した場合は、構成ファイルを保持する必要がありましたが、ファイルはアンインストール時に常に削除されていました。CopyFile コマンドの周りの LOGGING を無効にすることは、まさにこの状況の解決策でした。
開発者、これが古い投稿であることは知っていますが、これを正しい答えとして受け入れる必要があります。
このフレーズが、他の人が検索エンジンを通じてこのソリューションを簡単に見つけるのに役立つことを願っています: CopyFile で作成された Installshield ファイルは、アンインストール中に常に削除されます。