ClickOnce 強制的にアップグレード
ClickOnceはサーバ上に最新バージョンがリリースされると
起動時に最新バージョンをインストールするかどうかのダイアログが表示される。
しかし、そこでスキップされてしまうと最新バージョンでないアプリが動作されてしまうことがある。
そこで、以下のようにForm Loadイベントにロジックを追加し、
最新バージョンがある場合は強制的にアップグレードさせることもできる。
Imports System.Deployment.Application
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("harada-101")
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim deploy As ApplicationDeployment
'ClickOnce でインストールされているか判定
If ApplicationDeployment.IsNetworkDeployed = True Then
deploy = ApplicationDeployment.CurrentDeployment
'最新バージョンが利用できるかチェック
If deploy.CheckForUpdate = True Then
'最新バージョンがある場合、強制的にアップグレード
deploy.Update()
'アプリケーションを再起動
Application.Restart()
End If
'現在のバージョンをボタンのキャプションに表示する
Button1.Text = deploy.CurrentVersion.ToString()
End If
End Sub
End Classちなみに「発行」タブのオプションで「アプリケーションはオンライン時のみに利用できる」オプションや
「更新」ボタンの「アプリケーションの更新を確認する」のチェックを外し、
「このアプリケーション最低限必要なバージョンを指定」にチェックをつけることにより
上記のようなコードを記述せずに強制させることも可能。
(上記のコード作り終わったあとこれらのオプションを見つけてしまっただよ。。。orz)
動作確認環境:Visual Stadio2005,Wondow XP sp2