呼び出した後、セットアップを開始ClickOnce
し、以下のコードを使用するApplication.Restart();
と、アプリケーションの 2 つのインスタンス (新しく更新されたものと以前のバージョン) が作成されます。
private static void CheckForUpdate() {
ApplicationDeployment updateCheck = ApplicationDeployment.CurrentDeployment;
UpdateCheckInfo info = updateCheck.CheckForDetailedUpdate();
if(info.UpdateAvailable) {
updateCheck.Update();
MessageBox.Show( "The application has been upgraded, and will now restart." );
Application.Restart();
}
}//this has try/catch but didn't think it would be relevant
//since no exception is being thrown
クリック ワンスを使用するのはこれが初めてで、その単純さに驚いていますが、手動チェックをどこに置くべきかよくわかりませんでした (ユーザーに選択肢を与えたり、醜い更新ウィンドウを表示したりしたくありません)。 .
私はそれを myMainForm.cs
と my の両方に配置しましたが、両方でProgram.cs
同じ結果が得られました。Main()
関連する場合に備えて、私のものを含めています。
[STAThread]
static void Main() {
CheckForUpdate();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault( false );
Application.Run( new MainForm() );
}