WiX与代码示例

时间:2011-02-01 17:32:31

标签: visual-studio-2008 wix installation wix3

如果可能的话,我正在寻找一个精确的WiX教程和项目示例。目前的教程对我没什么帮助。

我的要求是

  • 包含依赖项。
  • 添加注册表项。
  • 在应用程序文件夹下创建文件夹。
  • 使用浏览按钮添加自定义UI对话框。
  • 在桌面和开始菜单上创建快捷方式。

我已经安装了WiX 3.0.5419.0 Visual Studio 2008

1 个答案:

答案 0 :(得分:3)

创建目录

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="ProgramMenuFolder">
        <Directory Id="ShortcutFolder" Name="My app">
        </Directory>
    </Directory>

    <Directory Id="ProgramFilesFolder">
        <Directory Id="My Company" Name="My Company">
            <Directory Id="INSTALLDIR" Name="My product">
            </Directory>
        </Directory>
    </Directory>
</Directory>

您可以根据需要嵌套目录标记,然后使用DirectoryRef列出进入此目录的组件。

使用浏览按钮添加自定义UI对话框

您可以在UIRefWixUI_InstallDirFragment(不在{{}中的某处使用 Include 定义Module 3}},尽管有文档):

<UIRef Id="WixUI_InstallDir" />

这将创建一个使用InstallDir UI的包,例如,可以在UI中指定目标目录(如果你的意思是这个,否则你需要从头开始定义一个新的对话框/复制现有的对话框和将其插入序列中。)

添加注册表项

指定类似

的内容
<RegistryKey Action="none" Root="HKCU" Key="some key">
    <RegistryValue Value="some value" Type="string" KeyPath="yes" />
</RegistryKey>

在组件内部。

在桌面和开始菜单上创建快捷方式

<DirectoryRef Id="ShortcutFolder">
    <Component Id="ShortcutsComponent" Guid="{XXXX}">
        <CreateFolder Directory="ShortcutFolder" />

        <RemoveFolder Id="RemoveShorcutFolder" Directory="ShortcutFolder" On="uninstall" />

        <Shortcut Id="UninstallProduct"
                  Name="Uninstall my product"
                  Target="[System64Folder]msiexec.exe"
                  Arguments="/x [ProductCode]"
                  Directory="ShortcutFolder"
                  Description="Uninstalls my product"/>
    </Component>
</DirectoryRef>

请注意我之前显示的目录列表中使用ShortcutFolder目录。

包含依赖项

不太确定您的意思是哪种依赖。

.NET Framework?例如:

<Condition Message="This setup requires the .NET Framework 3.5 or later to be installed.">
    Installed OR NETFRAMEWORK35 OR NETFRAMEWORK40FULL
</Condition>

第三方DLL?您只需为每个DLL创建一个单独的组件,并使用File标记指定WiX应该查找的路径。然后,此组件列在DirectoryRef标记下,该标记指定文件在安装期间的位置。