【问题标题】:Wix heat.exe with project harvesting typeWix heat.exe 与项目收获类型
【发布时间】:2011-04-07 10:10:48
【问题描述】:

我正在使用最新版本的 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 也不行

【问题讨论】:

  • 我遇到了同样的问题。项目的输出被捕获(它产生的一切),但没有任何依赖关系。我也将求助dir收割。

标签: .net wix teamcity continuous-integration


【解决方案1】:

很遗憾,这是 WiX 的一个已知问题:

Heat doesn't harvest referenced assemblies

从 bug cmets 看来,WiX 4.0 中似乎会添加支持。

【讨论】:

  • 我想我更希望他们在让 Burn 启动并运行之前解决这个问题。让我们希望 v4 的妊娠期比 v3.5/3.6 更短...
【解决方案2】:

我知道这是一个老问题,但这个帖子可能包含一些可能的解决方案的想法: 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

【讨论】:

    【解决方案3】:

    在我们的 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 信息(升级代码、msi 版本和包信息)。
    UI_culture(本例中为 RUS).wxs - 包含自定义的本地化 WiX UI。
    Bin.wxs - 包含所有需要的文件。(您可以使用 wxi 生成和使用 WiX 的包含来自动化它),但我们只是手动编写此文件。

    【讨论】:

    • 嗨,这是个有趣的东西,但没有回答问题:为什么 heat.exe 不为具有项目收获的依赖程序集生成条目
    • @Catalin DICU。是的,我知道。但我这样回答只是因为同样的任务不走运。经过一周与热度的斗争,我们决定手动编写一些 wxs 文件,并通过使用 msbuild 生成 wxi 文件来编写一些文件。
    • 我最终使用了目录收集,但它也放入了 .pdb-s。没什么大不了的,我没有尝试使用 xslt 过滤掉它们;不知道这样行不行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多