SeanBaker
I called Microsoft on this. Their final response:
ClickOnce / Vista / UAC - ClickOnce is designed to install applications in a secure, per user cache with the benefit being that you do not require administrative permissions to install the VS part of a Click Once deployed applications. Click once applications do not attempt to elevate to admin privileges at runtime because they can expose the client to security elevation attacks. It is by design. We do not have any work around for this as of now.
So, while you can add a UAC manifest to a ClickOnce published application, you can only use "asInvoker" as the requested execution level. The other levels ("requireAdministrator", "highestAvailable") are not supported due to security concerns.
The workaround I'm going with is to create a shell app (simple exe) that will have the UAC manifest with "requireAdministrator" and call the ClickOnce app from there. The thinking is that the shell app is a one-time install, and the ClickOnce app will be able to upgrade normally. I'll post back here if this works out OK.
Sean.
------
Update to this post:
The solution of using a shell exe app and calling the application reference created by ClickOnce is working very well. The shell app has the UAC manifest embedded, so you get the nice Vista security shield over the icon automatically. There is the headache of having an additional app to install, but it's just an exe with no supporting files, and it's a one-time thing. The ClickOnce automatic updates still work.
The other major problem we ran into when not running elevated as administrator was that the performance for both internet calls and SQL Server calls were painfully slow! A simple web service call and SQL update took 6.8 seconds as a standard user, and 0.1 seconds elevated. Simply not acceptable. HTTP downloads of JPG files was so slow the system became unusable. See Rick Strahl's post on this subject at http://www.west-wind.com/weblog/posts/10685.aspx. This was on a new Toshiba laptop with 2GB RAM installed.
Thanks for everyone's help on this!
Sean.