问题标签 [heat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
381 浏览

wix - 带有类型库的 Wix 3.0 中带有 Heat 的“坏图像”

当使用heat(来自 Wix 3.0.4805.0)从 Visual Studio 生成的类型库中生成 Wix 文档时,我遇到了一个错误。弹出一个窗口,上面写着:

'heat.exe - 坏图像'

应用程序或 DLL c:\path\to\file.tlb 不是有效的 Windows 映像。请对照您的安装软盘检查。

但是当我们按下'ok'后,它会继续并成功生成

看起来wix bugboard 上的这个错误报告说它是在我之前的版本中修复的,但似乎不是. 他们说发生错误是因为它首先尝试将其作为 DLL 加载(失败),然后继续做正确的事情。

这发生在 Windows XP SP3 上。

有人知道解决方法吗?

0 投票
4 回答
3934 浏览

wix - 在 Visual Studio 2008 和 WiX(v3) 中使用 heat.exe 收集 .csproj

我发现 Wix v3 使用工具 (heat.exe) 将信息“收集”到 WiX 片段中。要么我在寻找错误的位置,要么这是很少记录的。

为包含媒体文件的复杂文件夹结构自动生成 WiX 片段(可能使用 heat.exe)的最佳方法是什么:

  • 各种类型(ico/png/xaml/等)
  • 这可能会定期更改(名称/位置/添加/删除)
  • 被归类为“内容”并包含在 .csproj 中

这样它们可以通过 WiX 内置到安装程序中,并且可以承受升级和补丁吗?

背景资料

  1. 我找到了 heat.exe,它似乎解决了自动生成 WiX 片段的要求
  2. 在让“dir”收割机工作时,我注意到“project”收割机(命令行帮助)
  3. 媒体已经在 C# 项目文件中,因此注意到“-pog:Content”可能会做得很好
  4. 粗略搜索发现未提及“项目”收割机的过时文档
  5. 意识到整个项目安装程序可能可以使用“项目”收割机完成,但不确定它的支持程度以及陷阱是什么。
  6. 看到“PUT-GUID-HERE”的生成,并意识到 guid 的自动生成可能会影响升级/补丁。
  7. 意识到必须有人将这些工具用于类似目的,并且可能会为我指明正确的方向。

(公平地)指出 v3 尚未“完成”(因此缺乏文档和教程)。我现在得到的感觉是,在我的构建脚本中自动执行此操作并非易事,而且工具正在不断增长以简化此操作。

0 投票
1 回答
1051 浏览

visual-c++ - WIX heat 实用程序是否适用于 Visual C++ 项目?

我刚刚开始使用 Wix,并想使用热量从我的 Visual C++ 项目中提取输出以获取 Wix 文件。这似乎对我的 C# 项目很有用,但是,每当我在 C++ 项目上运行 heat 时,我都会收到一个错误:

这应该有效还是我做错了什么?谢谢

0 投票
2 回答
4667 浏览

wix - 使用 heat.exe 将批量文件添加到新的 WiX 项目:HEAT5150

如果这是一个重复的问题,请指导我使用现有的解决方案。我找不到匹配的查询。

我们目前使用 InstallShield。我正在尝试将具有 407 文件的项目转换为 WiX3 安装包。我尝试使用 heat.exe 进行一些自动化操作,但几乎每个文件都会收到以下警告:

c:> 热目录 "c:\projectDir\projectA" -gg -ke -template:Product -out "c:\install\projectA\heatOutput"

heat.exe:警告 HEAT5150:无法从预期为 SelfReg DLL 的文件中收集数据:c:\projectDir\projectA\plugin1.dll。如果此文件不支持 SelfReg,您可以忽略此警告。否则,此错误详细信息可能有助于诊断故障:无法加载文件:c:\projectDir\projectA\plugin1.dll,错误:126。

Q:每个文件都报这个警告是正常的吗?

如果当前有“如何创建/转换为您的第一个包含许多文件的 WiX 安装项目”教程,请指点我。关键要求是“有很多文件”。

PS。我知道 WiX 是为增量安装项目创建而设计的,但很高兴知道是否有一种自动化方法可以转换现有安装项目。

0 投票
2 回答
6233 浏览

wix - Wix - 使用蜡烛的热量输出时如何处理项目参考?

我正在尝试在 web .csproj 上使用热量,然后在输出上使用蜡烛。到目前为止,我已经完成了:

接着:

但是,在后者上,我得到:

我究竟做错了什么?

另外,有没有办法在 Visual Studio Wix 项目中使用热量输出?

0 投票
1 回答
3211 浏览

wix - 在不同的片段中添加 WiX 文件的快捷方式

我正在使用 heat.exe 生成与此类似的片段:

这些片段存储在自动生成的 wxs 文件中。

然后我将它们添加到我的功能中(在主 WiX 文件中),如下所示:

这工作正常。

但是,我还想将 Bar.exe 的快捷方式添加到我的开始菜单中。理想情况下,我希望在我的主 wix 文件中执行此操作,而 Bar.exe 组件仍驻留在自动生成的 wxs 文件中。如果不修改自动生成的代码,我将如何解决这个问题?

0 投票
7 回答
2565 浏览

msbuild - 如何使用 WiX 3.5.1811.0 修复 HEAT5301 错误

我的项目,以前用 WiX 3.0 构建得很好,现在失败了

heat.exe:错误 HEAT5301:无效的项目输出组:Binaries3bSources3bSatellites%3bDocuments。

我在 wix.targets 文件中找到了这个 ProjectOutputGroup,但它看起来像这样:

看起来%前 2 个值被丢弃了,但最后一个值仍然存在。

0 投票
2 回答
4178 浏览

c# - 使用 wix 注册标记为 COM 互操作的 .Net 程序集

我有一个 vanilla .net 类库,其中包含一些 [ComVisible] 类型,并且程序集本身被标记为“注册 COM 互操作”。我正在尝试为该应用程序构建一个 WIX 安装程序,它不仅需要将 .net 程序集复制到目标机器上的 INSTALLATIONDIR,还需要完成注册该对象的工作,以便一些旧版 VB6 应用程序可以使用.net 程序集。

我一直在使用 heat.exe(更准确地说是 heat 文件任务)来收集我通过 componentGroupRef 包含在我的主 wix 文件中的片段。我的问题是 heat.exe 正在收集的文件应该是我的类库输出的 .tlb 文件还是 dll 本身?如果我在 .tlb 上使用 heat.exe,我不会在片段中获得任何注册表元素,但我会使用 dll。如果我应该使用 dll,.tlb 在这个过程中扮演什么角色?

我在 msbuild 中使用以下热任务

0 投票
3 回答
10816 浏览

visual-studio - 如何排除文件被加热(WiX 3.5)收集?

我想通过使用 heat.exe 来收获一个包含大量文件的文件夹。但我不想收集所有文件,而是想排除特定的文件扩展名,如“*.txt”或类似的东西。我怎样才能做到这一点?

0 投票
1 回答
1087 浏览

visual-studio-2010 - 自动收获项目时设置 keypath

我正在使用 WiX 的项目参考功能使用 Heat 自动收获一个项目。这特别有用,因为 WiX 安装程序是在本地和 TFS2010 构建服务器上构建的,当它在构建服务器上构建时,输出被重定向到不同的位置,这意味着如果我不自动收获项目,它会得到试图为最近编译的项目引用正确的位置非常混乱。

我有以下 WiX“代码”来安装和启动服务:

到目前为止,一切都很好......当安装程序尝试安装和启动 Windows 服务但显示“服务'MyServiceName'(MyServiceName) 无法启动。验证您是否有足够的权限来启动系统服务”时,我遇到了问题。如果我选择“忽略”按钮,则安装“成功”完成,但是当我检查我机器上安装的服务时,新服务没有列出。

根据我的在线调查,我认为问题在于该服务实际上没有正确安装,因为我需要将 KeyPath 设置为应该作为服务运行的可执行文件,但是由于我正在使用 Heat 收集文件,所以我找不到这样做的方法...除非我创建一个自定义操作,该操作将为我安装服务,允许我在安装所有文件后指定可执行文件名称...但这听起来不像应该是正确的解决方案...

有没有人有任何建议或者他们遇到过同样的问题并提出解决方案?

谢谢

2010 年 7 月 10 日更新:在我的 WiX 脚本中,我有以下内容:

我收获的文件的目标目录是 INSTALLLOCATION 目录。

查看使用 Orca 的 msi,我可以看到我的 ServiceComponent 以及为每个收获文件生成的所有组件。查看文件表,没有与此组件关联的文件(因为它们为每个文件生成了一个组件......)。查看 ServiceInstall 表,它尝试安装的组件是 ServiceComponent。

所以我认为我需要以某种方式让 ServiceInstall 元素位于为服务 exe 生成的组件内,以便将此组件安装为服务而不是空的“ServiceComponent”组件?但是由于这个组件是在构建时由热量生成的,所以我没有设法取得任何进一步的进展......