ClickOnce program fails to run properly after update

G

Guest

I am using ClickOnce to distribute a program. It works well except for one
detail. When a new version is installed, the program does not initialize
properly immediately after the update. The sequence is the user starts the
program, is informed a new version is ready, installs it, when it is complete
and the main form is displayed, the user needs close the form, and restarts
the program to the form to initialize properly.
The problem is that several controls are left disabled. The program uses
MDI with a main form and several child forms as needed. The problem is on
the main form. The controls that are not enabled are two list boxes, a tool
bar, and a user control containing a numeric control. The menu and form tool
bar initialize ok. The form uses the table layout control and several
panels’ controls. The controls that do not initialize properly are in there
own panel in a cell of the table layout control. It is like the list boxes
are not there, they control the other controls determining when they are
enabled.
One list box is bound to a table and is filled. However, the value change
event does not seam to be working. The other list box, contains a the list
of the available MDI child forms and is filled in manually. It list is not
filled in or updated even when I generate a new MDI child form.
Restarting the program and every thing works normally.
How do I get the form to run normally form the start?
 
L

Linda Liu [MSFT]

Hi Mike,

Based on my understanding, you have a ClickOnce deployed application. When
a new version is installed and the application is run, some controls on the
main form are disabled. If you exit the application and then restart , all
works fine. If I'm off base, please feel free to correct me.

In theory, when an application is updated on a client machine via
ClickOnce, the application files of the new version are downloaded to the
client pc to replace the old files. This action won't disable the controls
of the application.

I have also searched KB on Microsoft web site, but unfortunately I didn't
find an article discussing about this problem.

Could you please tell me how you update the applicaiton via ClickOnce? Do
you use the default behaviour of ClickOnce (Project designer| Publish |
Updates, select the checkbox before the item "The application should check
for updates") , or program custom upgrade behavior with the classses in
System.Deployment.Application namespace?

If you update the application with custom upgrade behavior, have you
disabled some controls at the beginning of the upgrade, but forgotten to
enable them after the upgrade is finished?

I look forward to your reply.


Sincerely,
Linda Liu
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 
C

chanmm

ClickOnce is able for multiple versions deployment but I do not think is
appropriate for updating the app. I would suggest uninstall before Click the
ClickOnce is better.

chanmm
 
G

Guest

You are right on, that is exactly what happens. The cultrate seems to be the
list boxes and a couple of controls they control the enabling of. The text
boxes, mask edit, numeric up down, tool bars, and menu controls all work.
Restarting the program after the update corrects the situation. The list
boxes are never disabled or hidden in then normal running of the program. As
stated originally, one list box is filled via data binding to a table in a
dataset connected to a database and this box is filled but the events do seem
to fire or that that event code is not being complete executed. The other
list box is filled programmatically and is empty all though the focus
rectangle does show up. .
I use the default setting for the deployment; except for adding 5 third
party files form ComponetOne as required files. Note the list boxes are the
standard list boxes shipped with VS. The program is a VB.Net. The
prerequisites are .Net 3.0, Windows installer 3.1 and SQL express. However,
the problem existed before we added SQL express. The publishing location is
a Windows 2003 server standard edition sp1.
We are in the midst of beta testing the program and the use of ClickOnce
deployment method. Except for the above problem, we are very pleased with
the ClickOnce technology.
I hope this helps and thank you for your timely resonance.
 
L

Linda Liu [MSFT]

Hi Mike,

Thank you for your reply and detailed description.

Does the problem exist when the application is deployed via ClickOnce to
other client machine?

Do those controls that are disabled after the upgrade have a similarity?

You have mentioned that the list boxes are bound to a data source. Maybe
the problem is caused by the data binding. You may have a try removing the
data binding to the list boxes to see if the problem still exists.

In addtion, it's hard to reproduce the problem on my side. Would you please
send me screen shots, which display the form in abnormal and normal
situation respectively?

Hope this helps.

Please try my suggestion. I look forward to your reply.


Sincerely,
Linda Liu
Microsoft Online Community Support
 
G

Guest

The problem happens on all client machines when the program is update by
ClickOnce. The is the only way the program is deployed.

It seems to be the two list boxes on the main form. All other the other
controls work except the two controlled by the list boxes. One list box is
data bound, it is filled properly, and its events are not working. The other
is not data bound and is not being filled and I can not tell if the events
are working.

Where can I send the screen shots?
 
L

Linda Liu [MSFT]

Hi Mike,

Thank you for your reply.

Do you mean that the problem is caused by the two list boxes on the main
form?

I suggest you to narrow down the cause of the problem step by step by
removing the data binding on the list box or unsubscribing the evets of the
listboxes. When you find the real cause, you could solve the problem.

As the problem that you can not tell if the events of the list box not boud
are fired, you could add a line of code in the event handlers to show up a
message box, e.g, MessageBox.Show("xxxx").

You may send the screen shots with your post in the newsgroup, or send it
to my email box. To get my actual email address, remove 'online' from my
displayed email address.


Sincerely,
Linda Liu
Microsoft Online Community Support
 
G

Guest

Yes, it is two list boxes on the main form and it is as if they are not
enabled. I do not think weather their bound or not matters.
I will try to put some messages in strategic location to see if I can narrow
down the problem.
I will email the screen shot to you.
 
L

Linda Liu [MSFT]

Hi Mike,

Thank you for your reply and the screen shots.

From the screen shots, it seems that the application takes on Windows XP
style, however, the Windows XP style isn't applied to the application after
the application is updated via ClickOnce. Perhaps exception/error occurs
before the application enables Windows XP style.

As for the problem that the user control below the 'Antifreeze' list box
doesn't show correct data, you could add messageboxes in the event handler
of the 'Antifreeze' list box to see whether this event is fired and the
event handler is executed completely.

Could you tell me when the list box that below the 'Antifreeze' list box is
populated? You could also add some messageboxes in the event handler in
which this list box is populated to see whether the event handler is fired.

When does the application check for an update, before the application
starts or after the application starts? To separate problem, I suggest that
you select 'before the application starts'. To do this, right-click the
project in the Solution Explorer and choose Properties. In the Project
Designer, switch to Publish tab and click the Updates button. In the
Application Updates window, select the option of 'Before the application
starts'.

You may also have a try debugging the application on the client machine
using Windbg or Process Explorer. For more information on how to do it, you
could read the article 'How to debug application crash/hang in production
environment?' on the blog of our newsgroup support team.

http://blogs.msdn.com/msdnts/

Hope this helps.


Sincerely,
Linda Liu
Microsoft Online Community Support
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top