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

发布于 2024-08-09 20:49:47 字数 630 浏览 4 评论 0原文

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

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

c:> heat dir "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。

问:每个文件都报告此警告是否正常?

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

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

If this is a repeat question, please direct me to the existing solution. I wasn't able to find a matching query.

We currently use InstallShield. I'm attempting to covert a project with 407 files to a WiX3 installation package. I tried using heat.exe to do some of the automation but I get the following warning for almost every file:

c:> heat dir "c:\projectDir\projectA" -gg -ke -template:Product -out "c:\install\projectA\heatOutput"

heat.exe: warning HEAT5150 : Could not harvest data from a file that was expected to be a SelfReg DLL: c:\projectDir\projectA\plugin1.dll. If this file does not support SelfReg you can ignore this warning. Otherwise, this error detail may be helpful to diagnose the failure: Unable to load file: c:\projectDir\projectA\plugin1.dll, error: 126.

Q: Is it normal for this warning to be reported for every file?

If there's a current "How To create/convert to your first WiX install project with many files" tutorial, please point me to it. The key requirement is "with many files".

PS. I know that WiX is designed for incremental install project creation but it would be nice to know if there's an automated way to convert existing install projects.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤芳又自赏 2024-08-16 20:49:47

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

你可以拿installshield生成的msi文件,然后用wix自带的dark.exe工具反编译。正如您在此图中看到的,dark.exe 从.msi 文件。

您可以像这样使用它:

dark installer.msi decompiled.wxs

请参阅 dark /? 了解更多信息。

编辑:我不使用Votive,但据我所知它应该能够处理dark生成的wxs文件。 Votive 是否向您显示错误?

edit2:wixproj 文件仅用于 Visual Studio 和 msbuild 集成。核心工具不知道也不使用这种格式。只需创建一个空白的 wixproj 并从 Visual Studio 将 wxs 文件添加到其中即可。

edit3:您不应将 wxs 文件的大小与 msi 文件的大小进行比较。与 installshield 项目文件一样,wxs 不包含要安装的文件。它仅引用它们。您的 installshield 项目文件也不是 70MB 大。如果您想从 MSI 中提取二进制文件,那么您应该使用带有 -x 开关的 dark.exe。

If there's a current "How To
create/convert to your first WiX
install project with many files"
tutorial, please point me to it. The
key requirement is "with many files"

You can take the msi file generated with installshield, and then decompile it with the dark.exe tool which comes with wix. As you can see in this diagram, dark.exe generates wxs files from a msi file.

You can use it like this:

dark installer.msi decompiled.wxs

See dark /? for more information.

edit: I don't use Votive, but AFAIK it should be able to handle the wxs files generated by dark. Did Votive show you an error?

edit2: wixproj files are just for visual studio and msbuild integration. The core tools don't know or use this format. Simply create a blank wixproj and add the wxs file to it from visual studio.

edit3: You should not compare the size of the wxs file to the msi file size. Like an installshield project file, a wxs does not contain the files to install. It only references them. Your installshield project file is not 70MB large either. If you want to extract the binary files from the MSI, then you should use dark.exe with the -x <path> switch.

躲猫猫 2024-08-16 20:49:47

您是否尝试从 x64 DLL 中提取数据?这实在不行...

Are you trying to extract data from x64 DLL's? That doesn't really work...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文