代码之家  ›  专栏  ›  技术社区  ›  NealWalters

将第一个自定义对话框添加到VisualStudio环境中的WIX

  •  4
  • NealWalters  · 技术社区  · 15 年前

    我正在使用Visual Studio生成wix文件。到目前为止,我只有一个文件product.wxs,它正在为一个简单的安装工作。

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

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

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

    这就是我开始迷路的地方。

    1. 是否需要将一些(仅限要更改的文件)或所有这些文件复制到我的Visual Studio项目中。直到现在,我还没有运行这些源文件。

    2. 我的product.wxs如何知道使用这些文件?它是否首先查看本地目录?或者我需要重建一些C模块?

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

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

    谢谢,

    尼尔

    1 回复  |  直到 10 年前
        1
  •  5
  •   Community Tales Farias    7 年前

    我需要复制一些(只有我想更改的)或所有这些文件到 我的VisualStudio项目。直到现在,我还没有运行这些源文件。

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

    在product.wxs文件中,将UI引用更改为 <UIRef Id="WixUI_MyCustomUI" /> . 如果现在重新构建设置,则用户界面仍应与 维苏伊尔蒙多 因为我们还没有定制任何东西。

    如果成功,您可能需要自定义或添加一个对话框。同样,您可以通过从WIX源复制现有对话框来启动它。您还必须编辑 wixui_mycustomui.wxs 文件,以便它使用新对话框。看看这个 other answer 我写了一个例子。

    我的product.wxs如何使用 这些文件?它是本地的吗 目录优先?还是我必须 重建一些C模块?

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

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

    wxs文件的内容可以通过诸如 UIRef , ComponentRef , ComponentGroupRef , DirectoryRef 等等。

    推荐文章