方法:アンインストールショートカットの作成

23997 ワード

方法:アンインストールショートカットの作成
アプリケーションをインストールするときは、ユーザーの開始メニューにアプリケーションをアンインストールするショートカットを提供する必要があります.この例では、ICE(Internal Consistency Evaluators)によって検証されたアンインストールショートカットを開始メニューに作成する方法を示します.
この例では、方法:スタートメニューでショートカットを作成するには章を読んだことがあると仮定します.
ステップ1:アンインストールShortcut要素を追加する
要素は、アンインストールショートカットを開始ディレクトリに追加し、msiexec.exeファイル(Windows Installer実行可能ファイル、アンインストールプロセスを呼び出すために使用されます)を指します.既存のショートカットComponentに次のクリップを追加します.
<Shortcut Id="UninstallProduct"  Name="Uninstall My Application" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" Description="Uninstalls My Application" />

Targetプロパティは、msiexec.exeの場所を示します.Windows Installer内蔵System64Folder Propertyは、対象機器が32ビットであるか64ビットであるかに応じて、System 32フォルダまたはSysWow 64フォルダとして解析する.このプロパティを使用すると、ターゲットマシンのオペレーティングシステムバージョンに関係なく、msiexec.exeが常に正しく位置決めされていることを確認できます.Argumentsプロパティは、ProductCodeを渡すことによってmsiexec.exeにどの製品をアンインストールするかを知らせます(訳者注:/xはこの操作がアンインストールであることを表し、[ProductCode]はWiXの内蔵Propertyであり、次の完全な例のProductノードを参照).
コンパイル時にICE検証エラーを回避するには、Shortcut要素とレジストリキー値をRemoteFolder要素にバインドすることが重要です.両方の要素は方法:スタートメニューでショートカットを作成するにはにおいて詳細に記載されており、以下の完全な例においても記載されている.
完全な例
次に、前のコードクリップを使用する完全な例を示します.この例では、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: Add the uninstall shortcut to your installer package --> <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>