views:

567

answers:

2

How did you go about this: 1) did you use exe and dlls or created a cab file? 2) as far as deployment goes, did you implement a web service updater or use a third party deployment tool?

Any help/ideas is appreciated. Thanks!

+1  A: 

Definitely go with CAB and MSI files. See this great article in MSDN for details. CAB files are created with Visual Studio's Set Up projects. It is very easy to create a CAB file that contains your exe, dll and configuration files. You can instruct where these files should be copied to. You can also add registry values. Another good feature is that CAB files wont install in an incompatible platform.

With a little bit of more effort you can create a MSI installer. In it you can bundle more than one CAB files, one for every platform you want to support. Since you are not using ActiveSync, this is not much of an option for you.

For updating applications, this is another good article. Although it is old, I think that it still presents some useful ideas.

My recommendation is to use CAB files both for installation and updating the application. There is a relevant question here in SO about how to update an application over the air.

kgiannakakis
I read both of these. However, we are not using ActiveSync. And another thing I would like to know is how would the self-updating solution scale for say 5000 thin clients. How does a .cab file get created? no one seems to outline the clear steps.
gnomixa
the second article is from 2003, so I fear it might be a bit outdated.Outlining my scenario: I have exe file and 8 dll files as well as configuration file that I should be able to edit independently of application (according to the reqs). What is a .cab exactly? Does it include all of that?
gnomixa
A: 

Generally the installation for .NET CF apps is done via a CAB file. If you're talking an enterprise level, devices like Motorola/Symbol have an optional central server appliance that can manage all this for you and push applications down to devices.

Other than that, if you want to do auto-updating of your .NET CF application, this is definitely possible using a web service to check version #, and then download a list of updated files returned from the web service.

The trick there though is that you can't update files that are already in use. So to accomplish this I have had great success with downloading the files to the application directory with a ".update" on the end of the file extension. Then on the next application restart, the first thing before the application binds to other assemblies, it updates everything with the ".update" extension.

routeNpingme
so did you package everything in one .cab file? dlls and exe? how did you produce a .cab?
gnomixa