我们在SomeDialog.wxs文件中有一个WiX片段,它会提示用户输入一些信息.它在InstallerUI.wxs文件中的另一个片段中引用,该文件控制对话框顺序.当然,Product.wxs是我们的主要文件.效果很好.
现在,我为另一个应用程序的.MSI安装了第二个Visual Studio 2008 Wix 3.0项目,它需要向用户询问相同的信息.我似乎无法找出共享文件的最佳方式,以便更改所请求的信息将导致两个.MSI获得新行为.
老实说,我不知道合并模块,.wsi(包含)或.wixlib是否是正确的解决方案.我希望找到一个有人这样做的简单例子,但到目前为止我都失败了.
编辑: 根据Rob Mensching的 wixlib 博客文章,wixlib可能就是答案,但我仍然在寻找如何做到这一点的例子.
我对.wixlib选项很满意.一旦我理解了.wixlib是什么,我花了几分钟才完成.
我做了以下内容:在VS2008中,Add-> New Project ...类型为"WiX Library Project",名为SQLDialog.使用空<Fragment></Fragment>
元素创建库.wxs文件.我将UI元素从我现有的对话框(在我的主"WiX项目中")复制到Fragment元素中:
<Fragment>
<UI>
<Dialog Id="SQLServerPromptingDlg" ... Title="SQL Server Information" ...>
<Control Id="Next" Type="PushButton" ... Text="!(loc.WixUINext)" />
...
</Dialog>
</UI>
</Fragment>
Run Code Online (Sandbox Code Playgroud)
我将wixlib项目添加到VS2008中的Release Build配置中.我从主WiX项目中删除了SQLDialog.wxs文件,并引用了SQLDialog wixlib项目.
当我重新编译解决方案时,主WiX项目完全正常工作!甜!
然后我从我的其他WiX项目引用了SQLDialog wixlib项目并从那里开始使用它.工作得很好!Build Server很高兴,因为共享的.wixlib项目是它正在编译的解决方案的一部分.因此,出于我们的目的,我认为这比"共享"目录更好.没有冒犯鲍勃.我很感激你的想法.
归档时间: |
|
查看次数: |
3637 次 |
最近记录: |