2010-09-02 48 views
9

我正在使用Wix 3.5的最新版本,我试图使用heat.exe生成一个片段文件。命令行是:Wix heat.exe与项目收获类型

"%WIX%\bin\heat.exe" project "MyProj.csproj" -pog Binaries -pog Content -suid -directoryid 
INSTALLLOCATION -ag -template fragment -out "Files.wxs" 

我所拥有的是,我的项目取决于uppon程序集是从生成的文件中丢失。这是预期的行为吗?我如何添加它们?

我应该使用dir收割类型吗?!如何删除* .pdb或* .vshost.exe然后?

我想与CI服务器(TeamCity的)

编辑使用它: 我试图-pog Satellites而无法正常工作或

+0

我遇到了同样的问题。项目的输出被捕获(它产生的所有东西),但没有任何依赖关系。我即将诉诸'迪尔'收获。 – 2010-11-10 18:14:26

回答

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> 

Designer.wxs - 包含程序特定的MSI信息(的UpgradeCode,MSI版本,和包信息)。
UI_culture(本例中为RUS).wxs - 包含自定义本地化的WiX UI。包含所有需要的文件(可以使用wxi生成并使用WiX包含的文件自动生成),但我们只需手动编写此文件。

+0

嗨,这是有趣的东西,但没有回答这个问题:为什么heat.exe不生成项目收获项目收获 – 2010-09-14 14:12:39

+0

@Catalin DICU。是的我知道。但我这样回答,只是因为运气不好才完成了相同的任务。经过一周的热战之后,我们决定手动编写一些wxs文件,并通过使用msbuild生成wxi文件。 – 2010-09-14 16:33:28

+0

我最终通过使用目录收集,但它也把.pdb-s。没有什么大不了的,我没有试图用xslt过滤它们;不知道这是否会起作用 – 2010-09-14 17:20:43

8

不幸的是,这是一个已知的问题维克斯:

Heat doesn't harvest referenced assemblies

从错误的意见,它看起来像支持将在维克斯4.0中添加。

+0

我想我会希望他们在烧毁和运行之前得到修复。我们希望v4比v3.5/3.6更短... – 2011-11-10 22:27:14