我正在使用Transform创建一个windows安装包,使其成为多实例。我的mst文件更新了某些注册表项组件的产品代码和GUID。这是每台机器安装。现在我无法卸载我的产品,如果:
安装程序尝试在原始位置查找mst文件,但无法执行此操作,卸载失败。在这两种情况下,我可以做什么让我的产品卸载?
一些额外信息。我看到我的msi和mst文件缓存在“c:\Windows\Installer”文件夹中。但不知何故,安装程序并没有试图从缓存中获取mst。此外,如果未设置TransformsSecure策略,则一切正常。在这种情况下,我的mst文件会自动缓存在“c:\Windows\Installer{358e77a7-464b-4588-b538-a79fceb0ffa8}”文件夹中。
您可能需要在某处发布整个详细的卸载日志,我不清楚(抱歉)您是否因为 1 和 2 或 1 或 2 而无法卸载。因此,对于您的具体情况,存在一定的猜测。
但是,如果mst已从安装程序缓存中删除,那么Windows将尝试在原始安装源中找到它,就像缓存的MSI文件丢失一样。然而,安全转换不允许转到原始安装源(因为它们只能从安全缓存位置检索,例如,不能从DVD中检索),因此如果缓存的安装源丢失,卸载将失败。所以这很正常——安全转换需要访问安全位置的mst,而不是其他任何地方。是的,如果转换不安全,它可以使用安装源。
有时,系统帐户无法访问安装程序缓存位置,这将产生相同的结果。它无法在安全位置找到 mst,但转换是安全的,因此它无法使用原始安装源,因此操作失败。
因此日志中的详细信息可能会有所帮助。在尝试获取mst时,它会出现(比如说)系统错误5吗?还是说了别的为什么不能用?有没有一种尝试去解决这个问题,因为转换是安全的?