所以我正在接管一个预先存在的安装程序项目,但我真的不太了解Wix和安装程序,所以我只是想知道这个安装程序中我应该研究哪些方面。
我有这个问题,我的Wix安装程序生成的.msi正确安装。但在Windows 10上,“应用和功能”页面显示了我的应用的2个条目,并且这两个条目的“卸载”按钮都显示为灰色。
我很遗憾.wxs的哪一部分负责控制面板中显示的内容,任何帮助都将受到赞赏。
WiX快速入门:WiX并不值得学习 - 有一个学习曲线,但它也不是火箭科学。也许我可以建议this WiX quick start recommentations piece(混乱,但赞成 - 必须有帮助)。特别是“Hello World”部分可能会有所帮助 - 如果您不了解WiX。
答案:关于具体问题:
Add / Remove Programs
中的两个条目通常意味着主要升级失败,因此现在有两个已安装的产品版本而不是一个(从技术上讲,主要升级是卸载旧版本并安装新版本 - 在罩)。以下是关于这个主题的长篇答案:Doing Major Upgrade in Wix creates 2 entries in Add/Remove Programs。setup.exe
作为其自身安装的一部分。这可能导致Add / Remove Programs
中的几个条目。msiexec.exe
命令行卸载。msiexec.exe
,如下:
msiexec.exe /x {Product-Code}
WiX主要升级:WiX推出了一个“便利元素”来控制重大升级。我们的想法是让实施变得更容易。以下是一些细节:Majorupgrade or Upgrade ID which is preferred for Major upgrade?
内联:
<MajorUpgrade DowngradeErrorMessage="Can’t downgrade." />
正如您所看到的,更新的方法更容易处理,而旧的方法允许完全的灵活性。我不知道您的来源使用哪种方法。
主要升级技术:主要升级的关键问题是升级代码保持稳定(有些方法可以不用,但暂时不做)。此外,您还需要一个新的产品代码,一个产品版本(前三位数之一)和一个新的包装代码。如果未能进行任何这些更改,您可以在“添加/删除程序”中获得两个条目(运行时升级失败)。
一些链接:
感谢SteinÅsmul提供的文档链接。我能够弄清楚为什么我的msi正在做它正在做的事情。
主.wxs禁用了属性删除
<Property Id="ARPNOREMOVE" Value="1" />
因此删除它允许我再次从Windows控制面板卸载。
之前在控制面板中显示2个条目的原因是我们在文件夹中添加了一堆注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
在这里需要一些注册表项有一些原因,但至少现在我知道为什么我可以希望解决它们。希望这有助于将来可能遇到来自干净安装的重复条目问题的任何人。