在这个问题的精神中,Si在这里:WiX技巧和提示.我试图确定基于目录获取创建wix片段的最佳方法.文件收获,可以这么说.例如,在bin\release文件夹下,我可以拥有许多不同的文件夹以及我想要在片段中轻松捕获的文件.我一直在键入或使用wixedit这样做.
请注意我在这里没有尝试任何东西:A)我读了一点关于热量.(http://installing.blogspot.com/2006/04/heatexe-making-setup-easier.html)我我不确定从msbuild运行它?B)我从Newagesolution发现了这篇博客文章,该文章讨论了使用t4脚本:http://blog.newagesolution.net/2008/06/how-to-use-msbuild-and-wix-to-msi.html
我想知道其他人正在做些什么来解决这个问题.
问候,Brian
好吧,Daniel我肯定同意使用热量,但我认为Rob指出了我最终使用的正确方向.
我最终使用的是HeatDirectory.(请注意,我不打算进行修补.如果你想修补,你可能想看看另一个解决方案,但是热/热目录可以用于修补.)不幸的是,Rob的回答是非常有限,所以我不会说他真的回答了我的问题.刚刚指出了正确的方向.感谢Rob和Daniel的帮助.
因此,我回来后自己回答了这个问题.
跨栏...
障碍1 我遇到的是网上几乎没有关于如何在visual studio中实现热任务/热目录(热包裹在msbuild中)的文档.请注意,从msbuild运行的包装器看起来很新,我不承担使用风险,等等.由于缺少文档,我发送了一封电子邮件给wix用户列表.我得到了布莱恩罗杰斯的帮助.谢谢Brian,这解决了我的一切.看看他在这里的精彩博客文章,以便更好地了解热量如何帮助您实现自动化:http://icumove.spaces.live.com/blog/cns!FB93073C6534B681!4661.entry
障碍2 在使用热量后,我发现我没有按照推荐的方式使用组件,但我必须将所有推理拼凑在一起.我想如果你没有Windows安装程序的先验知识,很多人会在使用Wix的初期遇到这种情况.因此,我建议阅读一下:如果你是一名新手,请确保你也阅读了组件规则,就像我使用的Windows Installer.Component规则来自MS:http://msdn.microsoft.com/en-us/library/aa370561.aspx.阅读Rob Mensching中的这些内容,以便更好地了解组件:http : //robmensching.com/blog/posts/2003/10/4/Windows-Installer-Components-Introduction http://robmensching.com/blog/posts/2003/10/18/Component-Rules-101 对于Windows安装程序的额外阅读,请从Windows安装程序团队检查这些规则(规则16:遵循组件规则):http: //blogs.msdn.com/windows_installer_team/archive/2006/05 /12/595950.aspx
障碍3 您必须决定是否要在每次安装新版本时修补文件或升级.幸运的是,我不需要进行修补,因此对于每次升级我都会卸载以前的版本,如下所示:如何实现WiX安装程序升级?.这大大简化了事情.在修补时,您需要完全控制事物.当你想要许多开发人员进行自动化/自动构建时,有些事情比wix构建msi字段以外对wix一无所知.看来这可以用于使用热量,但我不确定.
障碍4 对我来说花了一点时间来弄清楚为什么带有我的预处理器变量的包含文件不起作用.我终于弄明白了.您必须将此文件包含在.wxs文件中,如下所示:有关详细信息,请参阅此处: 将文本文件内容包含在WiX脚本中
http://wix.sourceforge.net/manual-wix2/preprocessor.htm
障碍5 因为我使用混合的主要升级,我想挂钩颠覆我的产品编号.我认为这很简单,如果你知道怎么做的话.我在这里遇到麻烦,不得不为此得到帮助.
障碍6 使用基于bin文件夹更新文件的热量一切都很好.几乎是自动的,如果dll引用中有任何冲突等,那么文件将不会包含在安装程序中,因此可能无法正常运行.您需要有一个测试过程,以便在安装后测试您的程序.如果你错过了一个dll,这可能是至关重要的.我还建议您跟踪程序使用的dll并与msi文件进行比较.
现在使用HeatDirectory的解决方案(在Brian Rogers(wix团队)的帮助下):
Debug msbuild.heatfile Package ..\..\YourHeatDir $(WixToolPath) en-us ..\..\data\HeatDir
这需要粘贴到您的项目文件中,并且需要更改适当的设置/路径.这将做的是获取您指定的路径中的所有文件,并创建一个TestDir.wxs文件,然后您可以通过组件组引用该文件.有几个Heatdirectory选项,您需要查看热源代码以获取详细信息.
仅供参考:我在发布问题之后在stackoverflow上发现了这篇文章:如何将整个目录或项目输出添加到WiX包中
另外作为参考我刚看到这篇文章: 在Visual Studio 2008中使用heat.exe收集.csproj和WiX(v3).而且这可以使用加热任务来完成.
两者都讨论使用第三方工具.一个叫Mallow,另一个叫Paraffin.我认为石蜡看起来很受支持,可以做很多热量.增加一些内容:详情请见此处:http://www.wintellect.com/cs/blogs/jrobbins/archive/2007/10/18/wix-hints-for-new-users-part-1-of- 3.aspx
无论如何希望这有助于其他人.