如果不使用默认安装目录,为什么WIX不会删除INSTALLDIR中的快捷方式?我的WIX代码看起来像?
CASE WHEN :currency_flag ='Y' THEN tr.TRXN_RPTNG_AM ELSE 0 END as TRXN_RPTNG_AM
CASE WHEN :currency_flag ='N' THEN tr.TRXN_BASE_AM ELSE 0 END as TRXN_BASE_AM
看起来卸载程序不知道INSTALLDIR的新值。有什么想法吗?
答案 0 :(得分:1)
Windows Installer在这里有点奇怪。它不记录它执行的操作;相反,它试图记录反转它们所需的信息。在这种情况下,您似乎陷入了实施中的空白。
Windows Installer指出它已安装组件 shortcuts_INSTALLDIR 。将文件安装到特定目录时,它会记录目录的位置。然后在维护期间,它将恢复它记录的所有目录。但它不会记录(因此也不会恢复)只有快捷方式的目录。通常,快捷方式安装在ProgramMenuFolder下的预定义路径中。由于此类位置不受INSTALLDIR更改的影响,因此通常不会出现问题。
要解决此问题,您必须确保在维护期间恢复备用INSTALLDIR。您可以通过直接将任何文件安装到INSTALLDIR来说服Windows Installer自动执行此操作(如果额外文件不是问题,这是我的首选选项)。或者,您可以通过记住属性模式手动执行此操作,可能会在卸载密钥中利用ARPINSTALLLOCATION及其保存的值。