首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WIX升级有问题

WIX升级有问题
EN

Stack Overflow用户
提问于 2015-04-24 07:59:40
回答 4查看 611关注 0票数 1

WIX安装程序升级有问题。以前我们有两个版本的安装程序,一个为每台机器,另一个为每个用户。

目前,我们已经开发了一种双模式MSI。

双模式MSI升级了以前安装程序的PerUser版本(在PC 1上),选择了“自己安装”选项,但选择了“为所有人安装”(在PC 2上),则安装一个新产品。

我们是否做错了或者必须设置一些属性。我们在用WIX。

请帮帮忙

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-04-24 21:51:17

如果您以前有过2设置,那么可能是因为您有2升级代码,并且需要处理这两者才能在所有情况下都工作吗?

我已经很久没有处理每一个用户的问题了,但是一般来说,您必须使用author your 升级表来为您的设置包括和升级代码,以检测您以前安装的所有内容。升级表允许您检测在安装新产品之前应该计划卸载的任意数量的以前安装。

FindRelatedProducts MSI操作将搜索目标计算机上的所有包,以便找到任何与升级表中指定的值匹配的升级代码属性。

按照建议创建一个详细日志文件

代码语言:javascript
复制
msiexec.exe /I "File.msi" /QN /L*V "C:\Temp\msilog.log"

/I =运行安装序列/L*V "C:\Temp\msilog.log"=详细的日志记录/QN =完全静默运行

票数 1
EN

Stack Overflow用户

发布于 2015-04-24 09:08:54

每个用户安装允许为不同用户多次安装相同的产品--也可以在不同的版本中安装。这使得升级和补丁处理起来相当困难,我完全不喜欢这个每个用户的概念。我宁愿把每台机器的安装程序设为标准.我不觉得在功能上失去了多少,但是在可管理性方面获得了很多。虽然这不是你的问题的答案,但值得指出的是,每个用户安装都是一个错误的概念--充其量。

我不知道为每台机器设置安装程序是否是一种选择,但我找到了一种方法,通过使用Installshield及其自定义的ISSetAllUsers自定义操作,将安装从每个用户迁移到每台机器。下面描述了这个过程:windows当安装策略不同时卸载以前的版本(每个用户,每台机器)

据我所知,Wix没有这样的自定义操作,但您可以使用Win32 API call ::MsiEnumRelatedProducts()编写自己的自定义操作,如Rob Mensching这里所述:如何从每个用户更改为所有用户安装?

这里有一个类似的帖子供参考:perUser安装程序如何处理perMachine旧版本的程序?

这里有一个博客,描述(进一步)每个用户安装的问题:理解应用程序安装包的“每个用户”或“每个机器”上下文

让我补充几点意见:

  • 您可以在没有每个用户安装的情况下对每个用户进行设置。这没问题,只是让应用程序在启动时设置用户配置文件。我更喜欢安装每台机器的所有资源文件和设置,并让应用程序将它们复制到每个用户进行第一次启动初始化。这将确保用户设置不会与MSI纠缠在一起。
  • 同时维护同一产品的两个不同版本是很少见的,因此用户都可能使用同一版本的产品。从这个角度来看,每个用户都会更头疼。
  • 在每个用户安装程序场景中所涉及的升级和修补逻辑让我感到困惑--这对我来说没有任何意义。如果已经有了每台机器的安装,那么每个用户的安装对您来说有意义吗?这个程序是否再安装一次?
  • 如果每个用户的安装仍然很重要,也许您可以尝试ClickOnce (如果它仍然有效)。引用维基百科的话:“. ClickOnce部署的应用程序被认为是‘低影响’,因为它们是按用户而不是每台机器安装的。安装这些应用程序不需要管理员权限。每个ClickOnce应用程序都与其他应用程序隔离。这意味着一个ClickOnce应用程序无法‘破坏’另一个应用程序。”如果连接到自动更新和web部署,每个用户安装就更有意义了。
票数 2
EN

Stack Overflow用户

发布于 2015-04-24 12:14:03

我认为这是因为在您的安装程序中,默认模式是每个用户,因此它没有检测到每台机器。如果分配类型为“1”,则可以使用MSIGetProductInfo查找已安装的产品,然后可以将下列属性设置为每台机器产品的产品代码WIX_UPGRADE_DETECTED OLDERVERSIONBEINGUPGRADED

在FindRelatedProducts之后使用自定义操作按钮单击或调度它。这将告诉现有版本的安装程序和安装就像升级一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29841856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档