4

我正在使用 Visual Studio 构建我的 wix 文件。到目前为止,我有一个文件 Product.wxs,它可以进行简单的安装。

现在我想添加一些自定义对话框。我认为从下面的两篇文章中,我了解了如何做到这一点 - 在我设置好环境之后:

http://blog.torresdal.net/2008/10/24/WiXAndDTFUsingACustomActionToListAvailableWebSitesOnIIS.aspxhttp://www.merlinia.com/mdt/WiXTutorial2.msl

我下载了源代码,我在这个目录中看到了 35 个 *.wxs 文件 wix35-sources.zip\src\ext\UIExtension\wixlib

这是我开始迷路的地方。

  1. 我是否需要将一些(仅我想要更改的)或所有这些文件复制到我的 Visual Studio 项目中。到目前为止,我一直没有使用这些源文件。

  2. 我的 Product.wxs 如何知道使用这些文件?它首先查看本地目录吗?还是我必须重建一些 C# 模块?

我在我的 Product.wxs 中包含了这些行,它在执行时为我提供了用户界面:

    <UIRef Id="WixUI_Mondo" />
    <UIRef Id="WixUI_ErrorProgressText" />

谢谢,

尼尔

4

1 回答 1

5

我是否需要将一些(仅我想要更改的)或所有这些文件复制到我的 VisualStudio 项目中。到目前为止,我一直没有使用这些源文件。

由于您已经在使用WixUI_Mondo,我假设您想要自定义该 UI。在 wix 源中找到WixUI_Mondo.wxs,并将其复制到您的 Visual Studio 项目中。将文件重命名为 并将文件WixUI_MyCustomUI.wxs内的 UI Id 属性更改为Id="WixUI_MyCustomUI". 您还不需要复制任何其他文件;复制的 UI 序列中引用的对话框作为资源编译到 wix 工具中,因此 wix 通过名称“知道”这些对话框。

在您的 product.wxs 文件中,将 UI 引用更改为<UIRef Id="WixUI_MyCustomUI" />. 如果您现在重新构建设置,UI 应该仍然看起来WixUI_Mondo与我们尚未自定义任何内容完全一样。

如果可行,您可能需要自定义或添加一个对话框。同样,您可以通过从 wix 源复制现有对话框来开始。您还必须编辑该WixUI_MyCustomUI.wxs文件,以便它使用您的新对话框。看看我写的另一个答案作为一个例子。

我的 Product.wxs 如何知道使用这些文件?它首先查看本地目录吗?还是我必须重建一些 C# 模块?

您没有重建任何 C# 模块。您下载 wix 源代码的唯一原因是现有的 UI 序列和对话框是很好的示例。原则上,您也可以忽略 wix 源并从头开始为 UI 序列和对话框定义编写这些 wxs 文件。

当您使用命令行工具时,您只需传递多个文件参数即可组合多个 wxs 文件,它们将被编译并链接在一起。如果您将 wix 与 Visual Studio 一起使用,则只需将 wxs 文件添加到项目中。一个重要的 wix 设置通常由许多 wxs 文件定义。

UIRef一个 wxs 文件的内容可以通过, ComponentRef,ComponentGroupRef等元素包含对其他 wxs 文件中元素的引用DirectoryRef

于 2010-01-12T22:25:53.613 回答