0
votes

I'm creating a windows install package with Transform to make it multi-instance. My mst file updates ProductCode and GUIDs of some registry entries components. This is per-machine installation. Now I cannot uninstall my product, if:

  1. My mst file is removed from its original location
  2. TransformsSecure policy is set to 1

The installer tries finding the mst file at the original location, cannot do that and fails uninstall. What can I do to let my product to uninstall under those 2 conditions?

Some extra info. I see that my msi and mst files are cached in "c:\Windows\Installer" folder. But somehow installer is not trying to take the mst from the cache. Also everything is working well, if TransformsSecure policy is NOT set. In this case my mst file is automatically cached in "c:\Windows\Installer{358e77a7-464b-4588-b538-a79fceb0ffa8}" folder.

1

1 Answers

0
votes

You may need to post an entire verbose uninstall log somewhere, and it's not clear to me (sorry) if you cannot uninstall because of your 1 AND 2 or because of either 1 OR 2. So there's a certain amount of guesswork as it to your exact situation.

However, if the mst has been deleted from the installer cache then Windows will try to locate it at the original install source, just as it would if the cached MSI file was missing. However secure transforms disallow going to the original install source (because they can be retrieved only from the secure cached location, and not from the DVD, for example) so the uninstall will fail if the cached one is missing. So that's normal - secure transforms require access to the mst in the secure location and nowhere else. And yes, if transforms are not secure it can use the install source.

Sometimes the system account loses access to the installer cache location, and that would have the same result. It can't find the mst in the secure location, but transforms are secure so it can't use the original install source, so the operation fails.

So the details in the log may help. Does it get (say) system error 5 trying to get the mst? Or does it say something else about why it can't use it? And is there an an attempt to resolve the source that it doesn't do because transforms are secure?