【问题标题】:Remove Files if the installer folder is Program Files如果安装程序文件夹是 Program Files,则删除文件
【发布时间】:2018-02-16 03:29:36
【问题描述】:

我的 32 位应用程序有 Wix 安装程序,即它总是在 Program Files(x86) 中设置文件。所以当用户在 32 位机器上安装它时,我想从中删除一些 dll。

我没有在注册表中注册任何值,也不想那样做。除了这个还有什么办法吗?

【问题讨论】:

  • 从您的安装程序中删除它们,这样它们就不会放在首位。
  • 为此,我必须为 64 位和 32 位安装不同的安装程序。
  • 您只能将文件安装在一个平台上,而不能安装在另一个平台上。
  • 对不起。我不知道我们能做到这一点。例如,您可以分享任何链接吗?谢谢你:)
  • 您可以在这里搜索示例。这是您自己解决问题所付出的努力的一部分。

标签: wix windows-installer installation


【解决方案1】:

是的,假设您有要安装和运行的 64 位代码,您确实需要单独的 32 位和 64 位 MSI 文件。 32 位应用程序将安装在 64 位系统上并以 32 位模式运行,但您似乎拥有 64 位 Dll。

这很好地说明了为什么需要两次安装:

https://blogs.msdn.microsoft.com/heaths/2008/01/15/different-packages-are-required-for-different-processor-architectures/

例如,有不同的文件夹位置,例如用于 32 位程序文件的 ProgramFilesFolder 和用于 64 位设置的 ProgramFiles64Folder。

还有这个链接:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa367451(v=vs.85).aspx

指出32位包只能包含32位组件,64位包可以包含64位和部分32位组件。

【讨论】:

  • 我知道。我浏览了很多网站并找到了相同的答案。无法为这两个平台设置一个安装程序。就我而言,我仍然可以避免这种情况(但理想情况下我不应该这样做,但仍然如此),因为我的 dll 是 32 位的,而且我的应用程序总是安装在 Program Files(x86) 中。它适用于两个操作系统,但对于 32 位操作系统,我必须手动删除我的一些 dll,它工作得很好,因为我将它定位到任何 CPU。非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 2012-07-12
相关资源
最近更新 更多