I write almost exclusively internal applications that require no particular deployment. One does get deployed somewhere using ClickOnce, but is also internal only.

Now I have a more interesting situation. I have an application that is mostly internal, but will need to be installed by a couple external partners. An earlier version of this was deployed via a website using some login credentials. I could kind of go the same route, except that the login system has been broken for a year, and progress on replacing it has been glacial. Will it be fixed/replaced in the next year? I'm not optimistic.

Therefore, I'm considering my options. One thing I noticed is that I can use ClickOnce to deploy to a CD/DVD/USB drive, while specifying a website for the program to look for updates. This could be ideal for me, so I'm looking for somebody who has experience with this.

Some 90% of my users will be internal, so I could use this deploy to CD/DVD/USB, but actually deploy to a folder that those users would be able to access. For the remaining 10%, I could send them some medium (probably USB) that they could use to do the install. The installation would then include the URL of the website to go to for program updates (which will be fairly frequent).

This seems to meet my goals of providing an automatic update mechanism, while limiting installation to internal and those small number of external partners.

My alternative would be to publish from a website and do something goofy to circumvent the problem that no external user would be able to get to the installation link. This isn't out of the question, and some day it would work, since some day the login system will be replaced. Still, the first alternative seems superior.

Any suggestions.