Windows installer 当用户删除文件时,自定义操作会导致msi失败

Windows installer 当用户删除文件时,自定义操作会导致msi失败,windows-installer,Windows Installer,我已经为我的应用程序编写了一个wix脚本,它有两个与之相关的延迟自定义操作 其中一个自定义操作在安装期间运行,另一个在卸载期间运行 如果在用户手动删除文件后运行卸载程序,则在卸载过程中会发生此错误。这会导致msi查找要作为自定义操作运行的.exe,由于该文件不存在而失败,并导致卸载中止 如果文件不存在,如何不运行自定义操作 我没有发现任何类似的查询,所以我在这里发布。如果您可以查看此链接,请帮助我: 您需要搜索文件,并(如果找到)将文件路径存储在属性中(如果未找到,属性值将为空字符串)。然后在I

我已经为我的应用程序编写了一个wix脚本,它有两个与之相关的延迟自定义操作

其中一个自定义操作在安装期间运行,另一个在卸载期间运行

如果在用户手动删除文件后运行卸载程序,则在卸载过程中会发生此错误。这会导致msi查找要作为自定义操作运行的.exe,由于该文件不存在而失败,并导致卸载中止

如果文件不存在,如何不运行自定义操作

我没有发现任何类似的查询,所以我在这里发布。如果您可以查看此链接,请帮助我:

您需要搜索文件,并(如果找到)将文件路径存储在属性中(如果未找到,属性值将为空字符串)。然后在InstallExecuteSequence表中将该属性用作自定义操作的条件

例如(如果文件存在于安装程序中,则此示例将略有更改,因为它将使用CompLocator表而不是DrLocator表):

向AppSearch表中添加一个条目,例如:

Property........Signature_
MYFILEEXISTS....AppSearchSignature
Signature_.............Path
AppSearchSignature.....C:\PathToYourFile    
Signature.............Filename
AppSearchSignature....FileToSearchFor.exe   
向DrLocator表添加条目,例如:

Property........Signature_
MYFILEEXISTS....AppSearchSignature
Signature_.............Path
AppSearchSignature.....C:\PathToYourFile    
Signature.............Filename
AppSearchSignature....FileToSearchFor.exe   
向签名表添加一个条目,例如:

Property........Signature_
MYFILEEXISTS....AppSearchSignature
Signature_.............Path
AppSearchSignature.....C:\PathToYourFile    
Signature.............Filename
AppSearchSignature....FileToSearchFor.exe   
最后,在InstallExecuteSequence表中,找到您的自定义操作,并为其指定以下条件:

MYFILEEXISTS<>""
MYFILEEXISTS“”
换句话说,仅当文件的路径存在时才运行自定义操作


类似的东西应该可以做到…

请共享错误输出卸载时此可执行文件实际执行的操作是什么?真正的解决方案通常是:
1)
使用安装程序中嵌入的dll自定义操作,
2)
完全不需要自定义操作。请记住,如果用户愿意,卸载时所做的某些清理可以替换为用户的清理说明。通常,卸载时留下的是用户数据文件或设置文件,用户可能希望保留这些文件(例如,如果重新安装)。通常不应删除任何用户数据。这样做通常比将数据保留在原位会导致更多的问题。