我正在使用最新版本的Wix 3.5,我正在尝试使用heat.exe生成一个片段文件。命令行是:
"%WIX%\bin\heat.exe" project "MyProj.csproj" -pog Binaries -pog Content -suid -directoryid
INSTALLLOCATION -ag -template fragment -out "Files.wxs"
我遇到的问题是生成的文件中缺少我的项目所依赖的程序集。这是预期的行为吗?我该如何添加它们?
我应该使用dir
收获类型吗?如何删除* .pdb或* .vshost.exe呢?
我想将它与CI Server(TeamCity)一起使用
修改:
我尝试了-pog Satellites
但无法正常工作
答案 0 :(得分:8)
答案 1 :(得分:1)
我知道这是一个老问题,但这个主题可能包含一些可能解决方案的想法: How to add a whole directory or project output to WiX package
提到的工具之一,Paraffin 3.1,有各种命令行开关,允许您排除不相关的文件。 http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/28/paraffin3-1-new-and-improved.aspx
答案 2 :(得分:0)
在我们的CI版本中,我们使用带有手工制作的wxs文件的WiX 以下是构建文件的内容:
<Target Name="BuildSetup" DependsOnTargets="BuildSetupVersion">
<Exec Command="$(WIX-ToolPath)\candle.exe -nologo -out $(MSBuildProjectDirectory)\bin\Debug\Designer.wxs UI_RUS.wxs Bin.wxs" WorkingDirectory = "$(MSBuildProjectDirectory)\bin\Debug"/>
<Exec Command="$(WIX-ToolPath)\light.exe -wx -out Setup_$(Major).$(Minor).$(Build).$(Revision).msi Designer.wixobj UI_RUS.wixobj Bin.wixobj" WorkingDirectory = "$(MSBuildProjectDirectory)\bin\Debug"/>
<Message Text="##teamcity[publishArtifacts '$(MSBuildProjectDirectory)\bin\Debug\Setup_$(Major).$(Minor).$(Build).$(Revision).msi']"/>-->
</Target>
Designer.wxs - 包含特定于程序的msi信息(UpgradeCode,msi版本和包信息)。
UI_culture(本例中为RUS).wxs - 包含自定义本地化WiX UI
Bin.wxs - 包含所有需要的文件。(你可以使用wxi生成和使用WiX的包括自动化它),但我们只是手动编写这个文件。