■ClickOnceアプリケーションを更新する!

さて、今回の実験では、前回の「▼実験1 ClickOnceを始めてみよう! 」でインストールした ClickOnceアプリケーションのバージョンアップを行ってみたいと思います。

前回のインストールでは、アプリケーションの更新方法について触れていませんでしたが、今回は そこの説明から入りたいと思います。 アプリケーションの自動更新を行うためには、デプロイメントマニフェストを作成する際に [Update Options]の設定で下記の画面のように「This application should check for updates」に チェックを付ける必要が有ります。

その他、アプリケーションの更新をチェックするタイミングと頻度、更新を強制的にさせるかを 設定できます。今回、前回インストールしたアプリケーションを更新する実験を行いますが、 前回のインストール時に「This application should check for updates」にチェックが付いて いない場合は、更新のチェックが行われません。その場合、アプリケーションをアンインストールし、 チェックを付けて再インストールして下さい。

それでは、Version2のアプリケーションの配置を始めたいと思います。(Version1.0.0.1とかでも 多分、問題無いと思います。) ここで確認ですが、前回はVersion1を以下のようなフォルダ構成で配置していました。


      \TestApp
          |
          |--------TestApp.application
          |--------\1.0.0.0
          |            |---------------- TestApp.exe.manifest
          |            |---------------- TestApp.exe
          |            |---------------- TestApp.exe.config

※マイクロソフトのドキュメントによるとexeファイルとはconfigファイルは「\1.0.0.0\bin」に 配置すると記述されています。筆者がその配置方法でまだインストールを成功出来ていないので 上記のように配置しています。

そして、今回、Version2を配置後のフォルダ構成は以下のようになります。


      \TestApp
          |
          |--------TestApp.application
          |--------\1.0.0.0
          |            |---------------- TestApp.exe.manifest
          |            |---------------- TestApp.exe
          |            |---------------- TestApp.exe.config
          |--------\2.0.0.0
          |            |---------------- TestApp.exe.manifest
          |            |---------------- TestApp.exe
          |            |---------------- TestApp.exe.config

青色のファイルが今回、修正するファイルで、黄色が追加するファイルです。まずはアプリケーションを更新し、更新した アプリケーションを「2.0.0.0」のフォルダを作成します。そして、Version2用のアプリケーションマニフェストを作成 します。基本的には、Version1のアプリケーションマニフェストの作成と手順は変わりません。

「Version」に「2.0.0.0」と入力します。「Files」では、「2.0.0.0」フォルダに置かれている ファイルを選択します。次にアプリケーションマニフェストを更新します。 変更箇所は「Name」の「Version」と「Application Reference」です。

変更点1

「Version」に「2.0.0.0」と入力します。その他の項目の変更は必要ありません。

変更点2

Version2のアプリケーションマニフェストを指定します。 以上で作業完了です。

ClickOnceアプリケーションを起動してみましょう。以下のような画面が 表示され、アプリケーションが更新されます。

インストール時に以下のようなエラーが発生する場合があります。このエラーはデプロイメントマニフェストを からアプリケーションマニフェストを指定しなおして、保存する事で回避できます。 どうやら、アプリケーションマニフェストを編集し、デプロイメントマニフェストを更新しなかった場合に 発生するエラーのようです。

   種類: System.Deployment.ValidationFailedException
   アプリケーション マニフェストには、指定されたハッシュとは異なる計算されたハッシュがあります。

さて、いかがでしょうか?上手く行きましたか?
ご質問等が有りましたら、どしどし下さい。

HOMEへ