以前はClickOnceを使用してデプロイされたアプリケーション用のWiXインストーラを作成しています。WiXを使用してClickOnce経由でアプリケーションがインストールされたことを検出するにはどうすればよいですか?
アプリケーションがクライアントコンピュータにインストールされていて、MSIインストールを中止するかどうかを検出したいと考えています。 Stack オーバーフローで同様の質問を検索しましたが、その方法を見つけることができませんでした。
アプリケーションがインストールされている場所を示すパスまたはレジストリキーが見つかった場合は、条件を介してMSIインストールを中止できます。
this questionの回答を使用して、どこかに取得できました。 ClickOnceショートカットは、.appref-ms拡張子のファイルです。これは私が使用するコードです:アプリケーション一度クリックは、現在のユーザー用にインストールされているのに対し、
<Property Id="APP_CLICKONCE_INSTALLED">
<DirectorySearch Id="dirSearch.APP.CLICKONCE" AssignToProperty="yes" Path="[StartMenuFolder]" Depth="2">
<FileSearch Id="fileSearch.APP.CLICKONCE" Name="APP.appref-ms" />
</DirectorySearch>
</Property>
<Condition Message="App is already installed. Please uninstall it then re-run this setup.">
<![CDATA[APP_CLICKONCE_INSTALLED = "" OR INSTALLED]]>
</Condition>
しかし、StartMenuFolderは、ALLUSERSプロファイルの場所を提供します。私はまだ掘っている。すべては今良いです
<Package InstallerVersion="200" Compressed="yes" InstallScope="perUser" />
:閲覧者インストールを使用して
StartMenuFolderは、現在のユーザーの場所(私はperMachineを使用していた)を提供します。
あなたが正しいです、ClickOnceインストーラは(他のWindowsインストーラと同様に)アンインストール場所にエントリを挿入します。キーは異なりますが、DisplayNameを使用してアプリケーションを見つけることができます。 –