我们在 SomeDialog.wxs 文件中有一个 WiX 片段,它提示用户输入一些信息。它在控制对话框顺序的 InstallerUI.wxs 文件中的另一个片段中引用。当然,Product.wxs是我们的主文件。效果很好。
现在,我有第二个 Visual Studio 2008 Wix 3.0 项目,用于另一个应用程序的 .MSI,它需要向用户询问相同的信息。我似乎无法找出共享文件的最佳方法,以便更改请求的信息将导致两个 .MSI 都获得新的行为。
老实说,我无法判断合并模块、.wsi(包含)或 .wixlib 是否是正确的解决方案。我本来希望找到一个简单的例子来说明有人这样做,但到目前为止我失败了。
Edit:基于罗布·门兴的 https://stackoverflow.com/users/23852/rob-mensching wixlib 博客条目 http://robmensching.com/blog/posts/2008/10/10/What-are-.wixlibs-and-why-would-you-use-them,wixlib 可能是答案,但我仍在寻找如何执行此操作的示例。
我对 .wixlib 选项非常满意。我只花了几分钟就明白了 .wixlib 是什么。
我做了以下事情:
在 VS2008 中,添加->新建项目...,类型为“WiX Library Project”,名为 SQLDialog。
使用空的库创建 .wxs 文件<Fragment></Fragment>
元素。
我将 UI 元素从现有对话框(在我的主“WiX 项目”中)复制到 Fragment 元素中:
<Fragment>
<UI>
<Dialog Id="SQLServerPromptingDlg" ... Title="SQL Server Information" ...>
<Control Id="Next" Type="PushButton" ... Text="!(loc.WixUINext)" />
...
</Dialog>
</UI>
</Fragment>
我将wixlib项目添加到VS2008中的Release Build配置中。
我从 Main WiX 项目中删除了 SQLDialog.wxs 文件,并引用了 SQLDialog wixlib 项目。
当我重新编译解决方案时,Main WiX 项目的工作方式与之前完全相同!甜的!
然后我引用了我的另一个 WiX 项目中的 SQLDialog wixlib 项目并从那里使用它。效果很好!构建服务器很高兴,因为共享的 .wixlib 项目是它正在编译的解决方案的一部分。因此,就我们的目的而言,我认为这比“共享”目录更好。无意冒犯鲍勃。我很欣赏你的想法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)