How To: アンインストール ショートカットを作成する

アプリケーションをインストールしている時、アプリケーションをアンインストールする方法を 提供する為に ユーザーのスタート メニューにショートカットを置く事は 共通の必要条件です。 この how to は、スタート メニューに すべての ICE 検証チェックをパスする アンインストール ショートカットを作成する為に必要なステップを デモンストレーションしています。

この how to は、あなたが How To: スタート メニューに ショートカットを作成する トピックで述べられたサンプルから 始めていると 仮定しています。

Step 1: アンインストール ショートカットを 追加する

<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" 
Name="My Application Name"
Description="My Application Description"
Target="[APPLICATIONROOTDIRECTORY]MyApplication.exe" WorkingDirectory="APPLICATIONROOTDIRECTORY"/> <!-- Step 1: インストーラー パッケージに アンインストール ショートカットを追加する --> <Shortcut Id="UninstallProduct" Name="Uninstall My Application" Description="Uninstalls My Application" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]"/> <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/> <RegistryValue Root="HKCU" Key="Software\Microsoft\MyApplicationName" Name="Installed" Type="integer" Value="1" KeyPath="yes"/>
</
Component> </DirectoryRef> <Feature Id="MainApplication" Title="Main Application" Level="1"> <ComponentRef Id="myapplication.exe" /> <ComponentRef Id="documentation.html" /> <ComponentRef Id="ApplicationShortcut" /> </Feature> </Product> </Wix>