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

Nea*_*ers 4 installer windows-installer wix wix-gui

我正在使用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" />
Run Code Online (Sandbox Code Playgroud)

谢谢,

尼尔

Wim*_*nen 5

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

由于您已经在使用WixUI_Mondo,我假设您要自定义该UI.找到WixUI_Mondo.wxswix源,并将其复制到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文件定义.

一个WXS文件的内容可以通过元素如在其它WXS文件的元素容器的引用UIRef,ComponentRef,ComponentGroupRef,DirectoryRef等等.