Monday, April 23, 2007

More ClickOnce Trials

Wow, I can't believe that I haven't posted in about four months! In that time, I've been able to use ClickOnce for deploying and updating my program to a few friends for testing. It was a bit frustrating at first working out some of the kinks and now I have a pattern down so I can whip out a new version in a few minutes. I ended up modifying the procedure a little bit from the article I posted in my last post, which I think works a little better for me.

Now, I'd like to automate it in an MSBuild target and combine it with some Perforce scripting to update the publish.htm file with changes since the last build. I found a blog from someone who looks like worked through this very problem. I'll try it and see how it works.


I didn't want the delay at startup of the ClickOnce option to check before startup, so I went with the asynchronous "after startup" option. But, then you're left with having to handle the event, handle letting the user know that there's an update and tell them to restart the app. Only then, does the update happen. It was really clunky. So, I ended up making more use of the ClickOnce API to handle downloading the update and restarting the app myself. In the screenshot above, the little globe in the lower right corner checks for updates when you double-click on it. If there's an update, you're presented with a dialog that lets you download the update. Progress is shown in a progress bar in the status area of the main window, just left of the update icon (globe). When it's done, you can restart the app, or continue running and restart later. The API is pretty well done and updates are going very smoothly now. It was a bit more work, but it was worth it in the end to have an automated update mechanism built right into the app with a small amount of work.

I've also added text to speech capability in the built-in chat panel and some custom drawn server lists. I'm pretty new to GDI and custom drawn controls, and I can tell I need a lot of optimization to get it to the point where it can handle thousands of servers.

More later.

1 comment:

Anonymous said...

Hermes HandbagsHermes Belts vhrz hermes bags2013 Hermes Handbags uqwz