4

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

我们目前使用 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 是为增量安装项目创建而设计的,但很高兴知道是否有一种自动化方法可以转换现有安装项目。

4

2 回答 2

1

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

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

你可以像这样使用它:

dark installer.msi decompiled.wxs

有关dark /?更多信息,请参阅。

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

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

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

于 2009-10-27T00:30:48.553 回答
0

您是否尝试从 x64 DLL 中提取数据?这真的不行……

于 2009-10-28T04:03:53.690 回答