2014年1月8日水曜日

ClickOnceの発行設定と起動時の挙動

発行タブ・インストールモード・「アプリケーションはオンラインのみ利用できる」、の場合は、applicationファイルの起動に非常に時間がかかります。環境によりますが、長い時は「更新確認中」のアニメーションのいったりきたりの動きが7回以上繰り返しています。更新が無いのに長い・・・

何か良い方法はないかと考えていましたが、既にリリースしているものを下手にいじくって起動しなくなることは避けたいので、テストプログラムで検証してみました。長い間よくわからなかった「発行とClickOnceの挙動」について、新たにわかった点をまとめておきます。

■アプリケーションはオンラインのみ利用できる、の場合


・発行プロパティにおいて、「更新」ボタンが有効にならないので、起動後に更新を確認する設定ができない。
※「更新」ボタンの設定が固定されている。(アプリケーションの更新を確認する=ON、アプリケーションの開始前に行う=ON)

・一度、「オフラインでも利用できる」にしたアプリケーションを、「オンラインのみ利用できる」で発行すると、起動時にエラーとなる。

エラー概要:「以前のバージョンがインストールされているため、このアプリケーションをオンライン アプリケーションにできません。このアプリケーションをインストールするには、以前のバージョンをアンインストールするか、このアプリケーションをインストール済みにマークしてください」
→ つまり、同じアプリケーションは、オフライン可 → オンラインのみ は×

■アプリケーションはオフラインでも利用できる、の場合


・発行タブ・更新ボタンが表示される。
更新ボタン・アプリケーションの更新を確認する = ON、アプリケーションの開始後に行う = ONの設定が可能になる。(こうしたかった)

・オプション・配置プロバイダーURLの除外 = ON
発行タブ・インストールフォルダーのURLが、実際の配置URLと異なる場合に、起動時エラーとなる。
このURLを固定化できない場合は、この設定をONにする必要があるようです。

■最終的な発行設定は以下になりました。


・アプリケーションはオフラインでも利用できる = ON (「更新」の設定をするため)
・「更新」 → アプリケーションの更新を確認する = ON、アプリケーションの開始後に行う = ON (アプリケーションの起動を速くするため)
・「オプション」 → 配置プロバイダーURLの除外 = ON (実際の配置URLは固定化できないため)

------------------ 追記

HELPから抜粋
[配置プロバイダー URL の除外]
配置プロバイダーの URL を配置マニフェストから除外するかどうかを指定します。アプリケーションの初回発行の時点では、更新プログラムの配信場所が決まっていないケースも考えられます。Visual Studio 2008 SP1 では、このようなシナリオを想定し、マニフェストから配置プロバイダーの URL を除外できるようになりました。アプリケーションの発行後は、そのインストール場所から、更新プログラムがチェックされます

このように、配置プロバイダーURLの除外をONにすると、初回インストールはどのサイトからでもインストールできますが、2回目以降は違うサイトからダウンロードできません。エラーになります。
これはこれで、テスト環境では発行サイトを変えるとアンインストールする必要があり、面倒なことになります。
プログラム起動時の更新確認の速度を改善したいだけなのに、ピタリとくる設定がない。
保留だな、これは。

0 件のコメント:

コメントを投稿