cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Webfreek
Level 3

MSP patching issues.

I am trying to create an msp patch using IS 2011. I can successfully create them, but I'm havign two minot issues I can't seem to resolve. The core MSI is using the new UI-style.

Also, I am not generating any type of setup launcher. This is a minor update, and in my test patch, and only updating 1 file of many.

Anyway, here are the issues:

1) The patch is uninstallable. In my patch configuration, under the Common tab, I have "Allow Patch to be Uninstalled" checked. Also, in the Advanced tab, I have "Msi engine Version\Schema" set to "Version 3.1 (requires Windows 2000 SP3 or greater)".

But when I right click on the patch, this is in a Win Server 2008 R2 system, nothing comes up. i have to go into the registry to manually change the "unisntallable" flag from a 0 to a 1.

2) I want the information that appear in the DisplayName for the patch to be configurable dynamically at build time. I can manually set it in the Identification tab of my build configuration, but I'd like to be able to use a combination of hard-coded text and values that I can set at will. I have tried an enviornment variable like %TEST_VAL% in the "Display name:" textbox, but it didn't work, and I tried specifcying a [ProductName] property. That would look silly if it worked, but it didn't. When looking at the patch in ARP, I saw (litereally) %TEST_VAL% or "[ProductName]". Is there a way to parameterize what shows up in the display name for the patch?

3) Third question is general question for those with experience with the Win32 API. I am trying to use MsiGetPatchInfo to query information about the patch prorgrammatically. I can obtain the patch code successfully, but when using the aforementioned API call, the only property I can query with any success is "LocalPackage". I would like to be able to query information llke the DisplayName, which is what I'm really trying to do.

The information I want is in HKLM\SOFTWARE\Microsoft\Windows\CurentVersion\Installer\UserData\S-1-5-18\Products\\Patches\. This has value for display name, etc.

The "LocalPackage", which seems to be the only property I can query with the API call, is in HKLM\SOFTWARE\Microsoft\Windows\CurentVersion\Installer\UserData\S-1-5-18\Patches\. On my system, there are a large number of other patches, each of which only has the LocalPackage.

Isn't the API a bit underwhelming if the only thin I can query with it is the "LocalPackage" property? Is there anything I am doing wrong?

4) I am also getting a fatal error during uninstallation which I haven't started to debug yet.

-Bryan
Labels (1)
0 Kudos
(2) Replies
Webfreek
Level 3

I figured out the unisntallation issue. So that can be dis-regarded.
0 Kudos
Webfreek
Level 3

Webfreek wrote:
I figured out the unisntallation issue. So that can be dis-regarded.


I also figured out my issue(s) with getting the DisplayName I needed to use the GetPatchInfoEx(...) API, and that did it for me.

I still haven't figured out the other issues yet.
0 Kudos