Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

ClickOnce」(クリック ワンス)は、.NET Framework 2.0に搭載されたWindowsアプリケーションの配布・自動更新基盤で、.NET Framework 1.xで提供されていた「ノータッチ デプロイメント」の後継技術である。「ノータッチ デプロイメント」は、セキュリティ、配布(キャッシュの仕組み、DLL、Configファイルの配布)、パラメータ受け渡しなどで発生する問題点の対策が複雑であったため「.NET Framework 2.0」から「ClickOnce」という新しい技術が登場した。

ターゲット

ClickOnce」は、

以下のようなアプリケーションを配布・自動更新することにターゲットにしている。

また、.NET Framework 3.0からサポートされたWPFアプリケーションの配布・自動更新も可能となっている。

メリット

要件

配布・更新基盤として、色々な選択肢を検討する必要がある。

クライアント要件

ClickOnceアプリケーションを実行するには、次のクライアント要件を満たす必要がある。

環境

項番種類要件
ランタイム.NET Framework 2.0以上
OS.NET Framework 2.0以上が動作するOS
wwwブラウザMicrosoft Internet Explorer(以下、IEと略す)5.01 以上
ClickOnceローダ(dfsvc.exe)の起動にClickOnceをサポートするwwwブラウザが必要。
※ FirefoxなどアドオンによりClickOnceをサポートするwwwブラウザもあるが、サポート情報を探し難く、今後のサポート打ち切りなどの可能性もある。

権限

ClickOnce」では、インターネット環境から不特定多数に向けて配信されるWebアプリケーションのような利用を可能とするために、インストールの垣根を下げる必要があり、管理者権限が無くてもインストールが可能となっている 。

サーバ要件

サーバ要件(wwwサーバ、ファイル サーバなど)には、特別の要件は指定されていない。

動作の概要

発行~利用

ClickOnce」の機能を利用するには、Visual Studioで作成したプログラムを「発行」(後述)して生成した「配布用フォルダ」をwwwサーバ上に配置 し、「配布用フォルダ」内の『インストールWebページ』をIEで表示する。この『インストールWebページ』のリンク先には、「ClickOnceアプリケーション」を配置するためのリンクが含まれる。このリンク先のレスポンスを受けると、ランタイムの『ClickOnceローダ(dfsvc.exe)』は、「ClickOnceアプリケーション」の配置情報を読み取り、実行プログラムをローカル ディスクの『ClickOnceキャッシュ領域』にダウンロードする。

詳細

仕組み、シーケンスの詳細は以下が参考になる。

連載 ClickOnceの真実:第2回 ClickOnceの仕組みを理解しよう

既定のアクセス許可

「セキュリティ ゾーン」に基づいた限定された「アクセス許可」が適用される。

項番配置場所セキュリティ ゾーン
Webからの実行インターネット ゾーン
Webからのインストールインターネット ゾーン
ネットワーク ファイル共有からのインストールイントラネット ゾーン
CD-ROMからのインストール完全信頼

セキュリティの警告ダイアログ

配置オプション

「配置オプション」には、

の2つのオプションがある。

どのオプションを選択しても配布の基本的な動作は同じ。
これを切り替えることで、配布の動作が大きく変化するわけではない。

『インストール モード』

ClickOnceアプリケーション」を配布する際の、「ローカル ユーザ環境からのオフライン実行」が

を設定できる。

『配置場所』

「配布用フォルダ」を、次の3種類から選択することができる。

セキュリティ設定

ClickOnceアプリケーション」は、

のどちらかのセキュリティ設定で動作する。

『完全信頼』

「セキュリティ制限」を受けずに、単独で(通常のEXEと変わりなく)動作する。

『部分信頼』

VSでの設定

プロジェクトのタブ

セキュリティ・タブ

セキュリティ・タブではアクセス許可を構成する。

「アクセス許可」を与える場合、以下を設定する。

署名タブ

署名タブでは「コード サイニング証明書」による『署名』を行う。

発行タブ

発行タブでは発行を行う。

『発行ウィザード』より詳細な設定が必要な場合、
プロジェクトのプロパティを開き、[発行]タブに移動する。

ここでは、

などの設定が可能である。

「発行」後に「配布フォルダ」を移動する場合(例えば、開発機やビルド機のwwwサーバ上に「配布フォルダ」を作成し、その「配布フォルダ」を本番機のwwwサーバ上に配置する場合など)は、プロジェクトのプロパティの[発行]タブにある、[発行場所]と[インストールのURL]の両方のテキスト ボックスにURLを入力することで対応できる。[インストールのURL]テキスト ボックスにURLを入力すると、publish.htmのリンク先がこの入力値に差し替わる。

ストレージ

インストール先

分離ストレージ

「分離ストレージ」とは、主に『部分信頼』の「セキュリティ制限」を受ける(サンドボックス化される)アプリケーションからアクセス可能な唯一のストレージとして用意されており、また、種々のアプリケーションから利用できないよう分離される。

System.Deployment.Applicationクラスライブラリ

追加可能なカスタム動作

ClickOnceアプリケーション」に追加することができるカスタム動作

バージョン番号の表示

ClickOnceアプリケーション」のバージョン番号を表示する。

自動更新

更新されたバージョンがないかをサーバに問合せ、更新を行う。

ロールバック

ClickOnceアプリケーション」は、「1つ前のバージョンにロールバック(=昔のバージョンに戻す)」ことも可能。

コントロール パネルを開き、そこから[プログラムの追加と削除]を選択、表示された[プログラムの追加と削除]ダイアログで[プログラムの変更と削除]の一覧の中から、ロールバックしたい「ClickOnceアプリケーション」の[変更と削除]ボタンをクリックする。すると「アンインストール」もしくは「ロールバック」するためのダイアログが表示される。

ここで[アプリケーションを以前の状態に復元します。]を選択して[OK]ボタンをクリックすると、アプリケーションの「ロールバック」が開始される。

ロールバックした後は、元のバージョンに戻せなくなる。この場合、「ClickOnceアプリケーション」をアンインストールするか、また、サーバ側の「配布用フォルダ」を更新するまで、バージョン アップができないので注意が必要。

サポート

IE以外のブラウザのサポート状況について。

Firefox

2015/03/02:Firefoxに以下のPlugin追加し.NET4.5で動作確認した。

Chrome

Chromeには、Microsoft純正のPluginが無い模様。
(純正でないPluginは幾つか確認できるが何が良いのか解らない)
下記「ClickOnce for Chrome」を試たが動作しなかった。

参考

更新方法の選択

更新をスキップされないようにするには?

更新するか?スキップするか?の選択は、オフライン実行を選択した時に選択できる。
一度スキップすると7日間ほど更新のダイアログが表示されなくなる(ClickOnceの仕様)。

サーバの更新後は最新のプログラムを使用する必要がある場合は以下のいずれかの対応をします。

  1. publish.htmから起動する。そうすれば自動更新される。
  2. オフライン実行を不可能にする。ショートカットからの起動が無ければ更新キャンセル不可能。
  3. ClickOnce Deployment APIを使用して、アプリケーション自身が更新を確認する作りにする。
  4. 更新の必須化

    「アプリケーションに最低限必要なバージョン」を指定しておくことで、
    それよりも古いバージョンのアプリケーションを実行不可とする (キャンセルできない)

参考

参考

色々

調べれば色々できる。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS