Recommendations for deploying a VB.NET multi-client single database application

We have a VB6 app that has been sold to a large number of businesses.  The app is installed using a setup program created with Wise for Windows.  On the first install at a customer location, it is installed on a workstation/server considered to be the app's "server", and on that install, its MS Access database is created and configured for the business.  Subsequent workstation installs include mapping a drive to the location of the database, and "connecting" the app to the database via the mapped drive.  Updates are created as patches placed on our cloud server.  The local app checks the server for updates when it starts, then downloads and applies the patch if one is found for a higher version than the app.

We are rewriting the app in VB.NET and looking for the best approach for installing and upgrading the app.  We've looked at ClickOnce, but feel that it's not flexible enough for what we're trying to accomplish.

1,  Is anyone managing a similar app using ClickOnce?

2.  Does anyone have a suggestion for a different approach?
Who is Participating?
ambienceConnect With a Mentor Commented:
OK, Clickonce isn't going to work for the "all users" case.

Its worth looking into creating installers for your application using NSIS, InstallShield etc. This will give the most flexibility at doing chores specific to deployment and upgrades. Your main application can check for updates when it starts (or maybe even as a manual option), download and run the installer to do the actual upgrade.

The benefit of using installers is that your deployment package can do smart things like check and install .NET framework, fix up registry, migrate databases - basically anything you want.

Another approach that I've looked into in the past was using SVN as a deployment server. This was in the context of a application where we only needed xcopy deployment and no fancy scripts. The idea was to do a SVN Update on the deployment whenever an updated revision was available in the repository. SVN updates can do basic stuff like moving files around, deleting and adding stuff but its not suitable for advanced stuff like adding configuration etc. (for which installers are the best).

Rolling out your own download and upgrade logic is an option worth considering if your application has a plugin architecture. Updates to plugins can be pushed to a public server and the app can download updated dlls on need basis.
What exactly do you mean by "not flexible enough for what we're trying to accomplish?" What shortcomings did you envisage?
As we see it, ClickOnce will only install in the current Windows user account documents folder.  Our VB6 setup program installs for all users.  When we deploy our final VB6 path, we want it to cause the .NET version to be automatically installed, but we don't see how we can make that happen for all users.  Are we missing something?
Sorry - typo.  It should have read, "When we deploy our final VB6 patch..."
pkipeAuthor Commented:
Thanks ambience!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.