データを抽出するだけで、アンインストール データを作成しない msi インストーラーを作成することはできますか?
例えば:
- MSI には 10 個のファイルが埋め込まれています。
- ユーザーは、10 個のファイルをユーザー ディスクにコピーする MSI をインストールします。
- MSI は、ユーザーのコンピューターにアンインストール データを作成しません (プログラムの追加と削除のショートカットなど)。
アンインストール エントリが [プログラムの追加と削除] リストに表示されないようにすることができます。
しかし、これは、Windows インストーラーがインストール済みパッケージを管理するために行うこととはまったく関係ありません。Windows インストーラー パッケージは、自己解凍型および自己実行型のアーカイブを配布するための適切なメカニズムではありません。このために特別に作成された製品 (WinZip、WinRAR、古い Package-for-the-Web など) や、さまざまな非侵入型 (管理されていない) インストーラー (NSIS、Visual Studio Bootstrapper Installer など) があり、より適切に制御できます。システムが放置されている状態について。
重要なポイント: インストールが成功すると、Windows インストーラーはインストールに関する大量のデータをシステムに保存し、アンインストールされるまで管理します。
はい。プロパティを設定する必要がありARPNOREMOVE
ます。
MSDN ドキュメント: http://msdn.microsoft.com/en-us/library/windows/desktop/aa367591%28v=vs.85%29.aspx
このチュートリアルでも説明されています: http://wix.tramontana.co.hu/tutorial/com-expression-syntax-miscellanea/add-or-remove-programs-entries
Windows はアンインストール ARP/レジストリ情報を作成し、MSI が PublishProduct 標準アクションを実行するときに MSI がインストールされることを記憶します。MSI が PublishProduct アクション (条件を 0 に設定) を実行しない場合、MSI はファイル/レジストリ エントリ/サービス/etc をインストールでき、マシンに「インストール済み」製品として自身を登録することはありません。基本的には美化されたzipファイルになります。
ファイルをファイル システムにダンプするもう 1 つの方法は、MSI の管理インストールを実行することです: msiexec /a foo.msi。これは、製品を登録したり、カスタム アクションを実行したりせずに MSI をインストールするようなものです。