WiX 及代码示例

发布于 2024-10-15 11:15:03 字数 342 浏览 6 评论 0 原文

如果可能的话,我正在寻找带有项目示例的 WiX 精确教程。当前的教程对我帮助不大。

我的要求是

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

我安装了 Visual Studio 2008 并安装了 WiX 3.0.5419.0。

I am looking for a precise tutorial of WiX with a project example, if possible. Current tutorials didn't help me a lot.

My requirements are

  • Including dependencies.
  • Adding registry entries.
  • Creating folders under the application folder.
  • Adding a custom UI Dialog with browse button.
  • Creating shortcuts on the desktop and start menu.

I have Visual Studio 2008 with WiX 3.0.5419.0 installed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你穿错了嫁妆 2024-10-22 11:15:03

创建目录

<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>

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

添加带有浏览按钮的自定义 UI 对话框

您可以使用 UIRef >WixUI_InstallDir 位于 片段包含,或模块 (不在 产品 中,尽管有文档):

<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框架?示例:

<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 标记下,该标记指定安装期间文件的位置。

Creating directories

<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>

You can nest Directory tags as you like and after that use DirectoryRef to list components that go into this directory.

Adding a custom UI Dialog with a browse button

You can define UIRef with WixUI_InstallDir somewhere in a Fragment, Include, or Module (not in Product, despite the documentation):

<UIRef Id="WixUI_InstallDir" />

This will create a package that uses InstallDir UI, for example, the target directory can be specified in the UI (in case you mean this, otherwise you'll need to define a new dialog from scratch/copy an existing one and insert it into the sequence.)

Adding registry entries

Specify something like

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

inside a component.

Creating shortcuts on the desktop and start menu

<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>

Note the use of ShortcutFolder directory from the directory list I showed earlier.

Including dependencies

Not quite sure which dependencies you mean.

.NET Framework? Example:

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

Third-party DLLs? You just create a separate component for every DLL and specify the path where WiX should look for it using the File tag. This component then is listed under a DirectoryRef tag that specifies where the file goes during install.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文