方法:アンインストールショートカットの作成
23997 ワード
方法:アンインストールショートカットの作成
アプリケーションをインストールするときは、ユーザーの開始メニューにアプリケーションをアンインストールするショートカットを提供する必要があります.この例では、ICE(Internal Consistency Evaluators)によって検証されたアンインストールショートカットを開始メニューに作成する方法を示します.
この例では、方法:スタートメニューでショートカットを作成するには章を読んだことがあると仮定します.
ステップ1:アンインストールShortcut要素を追加する
要素は、アンインストールショートカットを開始ディレクトリに追加し、msiexec.exeファイル(Windows Installer実行可能ファイル、アンインストールプロセスを呼び出すために使用されます)を指します.既存のショートカットComponentに次のクリップを追加します.
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エンジニアリングに挿入してコンパイルしたり、コマンドラインにリンクをコンパイルしてインストールパッケージを生成したりすることができます.
アプリケーションをインストールするときは、ユーザーの開始メニューにアプリケーションをアンインストールするショートカットを提供する必要があります.この例では、ICE(Internal Consistency Evaluators)によって検証されたアンインストールショートカットを開始メニューに作成する方法を示します.
この例では、方法:スタートメニューでショートカットを作成するには章を読んだことがあると仮定します.
ステップ1:アンインストールShortcut要素を追加する
<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>