如何在32位PC上创建64位InstallShield安装程序?

时间:2022-07-01 22:35:31

I'm working on putting together an installer using InstallShield 2014 for an in-house developed 64bit application. My workstation is 32bit. I'm running into some warnings like the following.

我正在使用InstallShield 2014为内部开发的64位应用程序整理安装程序。我的工作站是32位。我遇到了一些警告,如下所示。

ISDEV : warning -6248: Could not find dependent file Microsoft.VisualBasic, or one of its dependencies of component AWP.Models.dll
ISDEV : warning -6248: Could not find dependent file mscorlib, or one of its dependencies of component AWP.Models.dll
ISDEV : warning -6248: Could not find dependent file Oracle.DataAccess, or one of its dependencies of component AWP.Models.dll
ISDEV : warning -6248: Could not find dependent file System, or one of its dependencies of component AWP.Models.dll
ISDEV : warning -6248: Could not find dependent file System.ComponentModel.DataAnnotations, or one of its dependencies of component AWP.Models.dll
ISDEV : warning -6248: Could not find dependent file System.Core, or one of its dependencies of component AWP.Models.dll
ISDEV : warning -6248: Could not find dependent file System.Data, or one of its dependencies of component AWP.Models.dll
ISDEV : warning -6248: Could not find dependent file System.Xml, or one of its dependencies of component AWP.Models.dll
ISDEV : warning -6248: Could not find dependent file Microsoft.VisualBasic, or one of its dependencies of component AWP.Shared.Cryptomatic.dll
ISDEV : warning -6248: Could not find dependent file mscorlib, or one of its dependencies of component AWP.Shared.Cryptomatic.dll
ISDEV : warning -6248: Could not find dependent file System, or one of its dependencies of component AWP.Shared.Cryptomatic.dll

When I check the dependencies using dependency walker on some of the files the dependency walker comes up empty.

当我使用依赖性walker检查某些文件的依赖关系时,依赖性walker出现空白。

Is it possible to create a 64bit installer on a 32bit machine? If so, what am I missing? Can someone point me in the right direction? Thank you.

是否可以在32位机器上创建64位安装程序?如果是这样,我错过了什么?有人能指出我正确的方向吗?谢谢。

EDIT: I found a possible solution at the bottom of the page for this which says to change the ".NET Scan at Build" property on the component with the warning to "Properties Only".
https://community.flexerasoftware.com/archive/index.php?t-155066.html

编辑:我在页面底部找到了一个可能的解决方案,用于更改组件上的“.NET Scan at Build”属性,并显示“仅属性”警告。 https://community.flexerasoftware.com/archive/index.php?t-155066.html

1 个解决方案

#1


1  

It's definitely possible to build a 64-bit installer on a 32-bit platform, but as you've found, dependency scanning is rougher. This is primarily due to 32-bit machines being unable to execute 64-bit code. Thus they cannot perform 64-bit COM extraction, and rarely receive 64-bit dependencies in installed form, and thus the scanning code being unable to find them.

在32位平台上构建64位安装程序绝对是可能的,但正如您所发现的,依赖项扫描更加粗糙。这主要是由于32位计算机无法执行64位代码。因此,它们无法执行64位COM提取,并且很少以安装的形式接收64位依赖项,因此扫描代码无法找到它们。

As you indicate in your edit, you will probably have the best results by changing from dynamic approaches to static inclusion of files or registry. As part of that, it's good to turn off any COM extraction options (make sure to include the relevant registry or COM table entries) and scan-at-build options that include dependencies, such as changing .NET Scan at Build to Properties Only.

正如您在编辑中指出的那样,通过将动态方法更改为静态包含文件或注册表,您可能会获得最佳结果。作为其中的一部分,最好关闭任何COM提取选项(确保包括相关的注册表或COM表条目)和包含依赖项的scan-at-build选项,例如将Build Scan中的.NET Scan更改为仅属性。

#1


1  

It's definitely possible to build a 64-bit installer on a 32-bit platform, but as you've found, dependency scanning is rougher. This is primarily due to 32-bit machines being unable to execute 64-bit code. Thus they cannot perform 64-bit COM extraction, and rarely receive 64-bit dependencies in installed form, and thus the scanning code being unable to find them.

在32位平台上构建64位安装程序绝对是可能的,但正如您所发现的,依赖项扫描更加粗糙。这主要是由于32位计算机无法执行64位代码。因此,它们无法执行64位COM提取,并且很少以安装的形式接收64位依赖项,因此扫描代码无法找到它们。

As you indicate in your edit, you will probably have the best results by changing from dynamic approaches to static inclusion of files or registry. As part of that, it's good to turn off any COM extraction options (make sure to include the relevant registry or COM table entries) and scan-at-build options that include dependencies, such as changing .NET Scan at Build to Properties Only.

正如您在编辑中指出的那样,通过将动态方法更改为静态包含文件或注册表,您可能会获得最佳结果。作为其中的一部分,最好关闭任何COM提取选项(确保包括相关的注册表或COM表条目)和包含依赖项的scan-at-build选项,例如将Build Scan中的.NET Scan更改为仅属性。