【问题标题】:MSI Installer for 64bit Windows Platform(Visual Studio)适用于 64 位 Windows 平台的 MSI 安装程序(Visual Studio)
【发布时间】:2011-12-24 21:16:46
【问题描述】:

我有一个希望在 64 位环境中部署的 COM 组件。有多个应用程序使用此 COM 组件。其中一些应用程序是 32 位的,而另一些是 64 位的。 因此,在创建安装程序时,我将捆绑我的 COM dll 的 32 位和 64 位版本。 在我的第一次尝试中,在构建安装程序项目时,我收到了很多警告:

例如。警告:两个或更多对象具有相同的目标位置 ('[payload_ul]\msvcp90.dll')

上面的警告与合并模块有关。我已经检查过,但没有多个合并模块存在。

虽然项目编译成功但出现警告,但在测试时我发现 64 位模块注册失败。

MSI 标记为 x64 平台。

任何人都可以提供正确方法的指针吗?

【问题讨论】:

  • 您需要 32 位和 64 位 MSVC C++ 运行时,这就是您要合并该模块两次的原因。
  • hmmm...有没有办法避免这种情况..安装程序可以更好地组织吗?还有组件未注册的问题。
  • 组件未注册,因为冲突只安装了一个运行时DLL,导致您的组件DLL无法从regsvr32加载。
  • 避免所有这些麻烦的最简单方法是静态链接 C++ 运行时并省略对运行时 DLL 的依赖。显然,这不是一个通用的解决方案,但如果你只是想运送一些东西,那就“足够好”了。

标签: windows windows-installer


【解决方案1】:

MSI 不支持混合 x86 和 x64 安装程序(查看此博客:http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx)。有很多方法可以“解决”它,但最终你会以一种或另一种方式被咬。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多