2010-01-12 42 views
4

我正在使用Visual Studio构建我的wix文件。到目前为止,我有一个文件Product.wxs,它可以用于简单安装。在VisualStudio环境中将第一个自定义对话框添加到WIX

现在我想添加一些自定义对话框。我觉得从两篇文章下面,我知道如何做到这一点 - 我让我的环境搭建后:

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

感谢,

尼尔

回答

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文件,以便它使用您的新对话框。看看我写的这个例子other answer

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

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

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

一个WXS文件的内容可以通过元素在其它WXS文件的元素容器的引用如UIRefComponentRefComponentGroupRefDirectoryRef等等。

+0

正确且有用。 –

+0

感谢您的明确解释。在复制文件,重命名和更新ID之后的第一次构建中,我得到:error LGHT0094:在'Product:{guid ...}'部分中符号'WixUI:WixUI_WCFCustomUI'的未解析引用我已经拥有Visual Studio项目引用到WixUIExtension来让Mondo工作。 – NealWalters

+0

您是否已将wxs文件添加到您的visual studio项目中?该错误似乎表明复制的wxs文件未添加到项目中,或UI中的Id和UIRef元素不匹配。 –

相关问题