Orcaを使用してインストーラーのプロパティテーブルでARPSYSTEMCOMPONENT=1を設定する必要があります(私が知っていることから、Visual Studioで直接行うことはできません)
これは、プログラムが依存関係をインストールし、ユーザーが依存関係を手動でアンインストールすることを望まない場合に一般的に使用されます。ユーザーは、提供した特定のアンインストールスクリプトなどを使用する必要があります。
個人的には、パッチをパッチとして作成し、パッチがアンインストールされないようにします。
また、このようなトリックを使用する方法、理由、および場所についての説明が記載された、Windowsインストーラーの決定的なガイドのコピーを入手することをお勧めします。また、Windowsインストーラーの基礎について非常によく理解し、長期的にはより優れたインストーラーを設計するのに役立ちます。この本のすべての例では、 WindowsインストーラSDKのVisualStudio +無料ツールを使用しています。
編集:ユーザーは、MSIEXECを介して、提供したカスタムアンインストールショートカットを介してアンインストールするための完全な制御を引き続き使用できます。これにより、プログラムの追加と削除(ARP)のエントリを非表示にすることができます。
Edit2:プロパティを追加するためのサンプルVBS(自動ビルドプロセスの一部として追加する場合)
Dim installer, database, view
Set installer = CreateObject("WindowsInstaller.Installer")
Set database = installer.OpenDatabase ("test.msi", 1)
Set view = database.OpenView ("INSERT INTO Property(Property.Property, Property.Value) VALUES('ARPSYSTEMCOMPONENT', '1')")
view.Execute
Set database = Nothing
Set installer = Nothing