アプリケーションをインストールしている時、アプリケーションをアンインストールする方法を 提供する為に ユーザーのスタート メニューにショートカットを置く事は 共通の必要条件です。 この how to は、スタート メニューに すべての ICE 検証チェックをパスする アンインストール ショートカットを作成する為に必要なステップを デモンストレーションしています。
この how to は、あなたが How To: スタート メニューに ショートカットを作成する トピックで述べられたサンプルから 始めていると 仮定しています。
<Shortcut> エレメントは、スタート メニューにアンインストール ショートカットを 追加する為に使われていて、ショートカットは msiexec.exe (実際にアンインストール プロセスを起動させる為に 使用されている Windows Installer 実行ファイル) を 指しています。 いま在る ApplicationShortcut コンポーネント内のどこかへ 以下を追加します:
<Shortcut Id="UninstallProduct" Name="Uninstall My Application" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" Description="Uninstalls My Application" />
Target アトリビュートは、msiexec.exe の場所を指しています。Windows Installer System64Folder プロパティは、32ビット マシンでは System32 ディレクトリーに、64ピット マシンでは SysWow64 ディレクトリーに なります。このプロパティの使用は、msiexec.exe が ターゲット マシンでのOSバージョンに関係なく 常に見つけられる事を 保証します。 Arguments アトリビュートは、アンインストールするのがどのプロダクトか インストール パッケージ の為の ProductCode を渡す事によって msiexec.exe に知らせる為に 使われています。
ビルドでの ICE 検証エラーを避ける為に、レジストリー エントリーを含めた Shortcut エレメントと RemoveFolder エレメントを結び付けておく事が 重要です。これらの両方が、 How To: スタートメニューに ショートカットを作成する トピックで より詳細に述べられており、下に完全なサンプルが 示されています。
以下は、上のコンセプトを使用している 完全なサンプルです。この例は、インストーラーを 生成する為に、WiX プロジェクトに挿入、コンパイルや、コマンドラインからコンパイル・リンク する事ができます。
<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="*" UpgradeCode="PUT-GUID-HERE" Version="1.0.0.0" Language="1033" Name="My Application Name" Manufacturer="My Manufacturer Name"> <Package InstallerVersion="300" Compressed="yes"/> <Media Id="1" Cabinet="myapplication.cab" EmbedCab="yes" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="APPLICATIONROOTDIRECTORY" Name="My Application Name"/> </Directory> <Directory Id="ProgramMenuFolder"> <Directory Id="ApplicationProgramsFolder" Name="My Application Name"/> </Directory> </Directory> <DirectoryRef Id="APPLICATIONROOTDIRECTORY"> <Component Id="myapplication.exe" Guid="PUT-GUID-HERE"> <File Id="myapplication.exe" Source="MySourceFiles\MyApplication.exe" KeyPath="yes" Checksum="yes"/> </Component> <Component Id="documentation.html" Guid="PUT-GUID-HERE"> <File Id="documentation.html" Source="MySourceFiles\documentation.html" KeyPath="yes"/> </Component> </DirectoryRef> <DirectoryRef Id="ApplicationProgramsFolder"> <Component Id="ApplicationShortcut" Guid="PUT-GUID-HERE"> <Shortcut Id="ApplicationStartMenuShortcut"