cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Brad_Peterson
Level 7

Major update mistake...

Ok, so I made a big mistake. I released a major update to our customers (which changes the product code but not the update code).

However, I didn't realize that from Update Service's perspective, it sees it as a brand new, distinct product completely unrelated from the last version. So it apparently needs to be registered again with Update Service. Also, to complicate matters, I haven't changed the product code in our product that now sits on our users computers.

So, are our users in a dead end updating situation? The version they have is for a product which isn't yet registered with Update Service, and the GUID they have stored in a string variable is the for the old product. I'd really appreciate any help in getting me out of this bind.

For example, when we try to see if updates are available via the web with this code:

Public Sub cmdManualUpdatesClick()
Dim pAgent2 As Object

Set pAgent2 = CreateObject("DWUpdateService.Agent")
pAgent2.AppUpdate GetProductGUID, 8

End Sub
It says the Update Service doesn't have this product registered. However, the GUID I'm passing in is for the old product code which is registered with Update Service. So why does it report that it's not registered? Is there something else that works behind the scenes that passes in the true product code even though I'm passing in the old product code?
0 Kudos
(3) Replies
Brad_Peterson
Level 7

Nope, I'm stuck. Argh!

I have two ways of checking for updates. One way calls IsConnectedEx, and the other calls AppUpdate. Both appear to check if the product code GUID that you pass in matches the applications installed GUID. Since in my situation, our customers computers GUID's don't match, both functions don't even bother going out onto the internet to check with Update Service, and instead just bail out immediately.
0 Kudos
Sunny_s
Level 6

Let me understand it first,

a) To start with, You have a application A with Product Code A version 1.0

b) You upgraded application A to application B with Product Code B Version 1.0

c) In the process, A is uninstalled, right?

d) Application B is installed now.

e) Application B has a code which checks for Updates for Product Code A

f) Since Product Code A is unregistered with Agent, application B (which is actually calling US with Product Code A) is getting error "Product Code not registered", Can you specify specific error code here is it, 13001 etc.

If all of above is true, we have a problem here, typically, testing should have caught this issue. However, if you have fewer customers you can try to correct this problem by running some batch file to correct the problem.

If Update Manager is installed. Updates to Product B can solve this problem too. Here, I believe, Product Code B is registered with Agent.

Good Luck
-Sunny
0 Kudos
Brad_Peterson
Level 7

Sunny's wrote:


e) Application B has a code which checks for Updates for Product Code A

f) Since Product Code A is unregistered with Agent, application B (which is actually calling US with Product Code A) is getting error "Product Code not registered", Can you specify specific error code here is it, 13001 etc.

If all of above is true, we have a problem here, typically, testing should have caught this issue. However, if you have fewer customers you can try to correct this problem by running some batch file to correct the problem.

If Update Manager is installed. Updates to Product B can solve this problem too. Here, I believe, Product Code B is registered with Agent.

Good Luck
-Sunny


Sorry, I knew my explanation was confusing. You got it all right up until f. Product Code A *was* registered with Agent. But you got the rest 🙂

I am getting error code 13000. I turned on my packet sniffer to see if anything even goes out to the internet to contact InstallShield about my product, and it showed that nothing was transmitted. So, I believe that because my product is really Product Code B, but I'm telling Agent that it's Product Code A, some check happens behind the scenes and it realizes the two do not match, and so it bails out right there.

While testing, I changed the string value so it became Product Code B to match what the actual product code is. Then I tried the update again, and I got error code 13001, because I had not yet registered Product Code B with Update Service. When I registered Product Code B with update service, it worked.

As for the solution, I don't have too many customers for this particular product (we have about 7 products total). So we've already marked aside a day for emailing and calling up these customers.

In the future, it would be helpful if some kind of warning message is placed in InstallShield if 1) A user requests to perform a major update and B) it's apparent that the product uses Update Service. Something along the lines of "Because this update requires a product code change, Update Service will no longer recognize this product. You must make an new product entry in Update Service for you to send future updates notices to your software. You should also update any product code entries you have coded into your application."

I know it was a dumb mistake for me, but it was my first major update, and there are so many details I had to watch for. I just let one detail slip by, and it cost me dearly. Update Service is a complicated thing the first time you try to do something new with it, so a tip like that one could make the process easier to understand.

Again, thank you very much for your response!
0 Kudos