Wix heat.exe与项目收获类型

Cat*_*ICU 10 .net teamcity continuous-integration 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"
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是生成的文件中缺少我的项目所依赖的程序集.这是预期的行为吗?我该如何添加它们?

我应该使用dir收获类型吗?如何删除*.pdb或*.vshost.exe呢?

我想将它与CI服务器(TeamCity)一起使用

编辑:我尝试过-pog Satellites,也没用

Tho*_*att 8

不幸的是,这是WiX的一个已知问题:

热量不会收集参考组件

从错误评论来看,似乎将在WiX 4.0中添加支持.


Ser*_*oda 0

在我们的 CI 构建中,我们使用 WiX 和手工制作的 wxs 文件。
这是构建文件的内容:

<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>
Run Code Online (Sandbox Code Playgroud)

Designer.wxs - 包含程序特定的 msi 信息(升级代码、msi 版本和包信息)。
UI_culture(本例中为 RUS).wxs - 包含自定义本地化 WiX UI。
Bin.wxs - 包含所有需要的文件。(您可以通过 wxi 生成并使用 WiX 的包含来自动化它),但我们只需手动编写此文件。