I'm very new to ClickOnce and am unsure if it would meet my needs.

The project I'm building is client-server, with a middle tire library. The middle tier library exists on both the server and client side. Updates have to be distributed to all the clients and server at the same time. If a client attempts to communicate to the server with a different version of the library, unexpected results may occur.

I would love the ability to post an update to a server, allow the clients to download the update, but have the install of the update scheduled take place at a pre-determined time (probably 24 hours later). Shortly before the scheduled time is about to occur, say 5 min, I want each client running the program to prompt with a warning "This application needs to shut down in 5 min for updates." This prompt would have to be generated locally as my server app doesn’t use any push technology and is essentially unaware of the connection state of clients. Any client computer not running the program will not prompt the warning and just perform the update automatically.

The application on the server-side would also perform an update at this time. Than, I can implement my own mechanism to show clients an error if they attempt to access the server app (use WCF on the server) during this time. Something such as “The server is currently undergoing an update, please try again later�br>
Is it possible to interface with ClickOnce to do what I’m suggesting?

-Mike.