ClickOnce」環境を作成してみます。

改めて、「ClickOnce」って何!?  ClickOnce」はWebページからアプリケーションをインストールする技術です。



ただインストールするのなら、Webページにインストーラファイルを配置しておいて利用者がダウンロードしてインストールすれば良いのですが、 「ClickOnce」が違うのは、一旦インストールしたアプリケーションをその後に起動するたびに自動的にWebページ側に問い合わせて、 新しいバージョンが存在する場合は更新インストールが行なわれるという仕組みなのです。



Webページからインストールしたアプリケーションはスタートメニューに登録されるので、次回からは普通にスタートメニューから起動でき、 もちろん、タスクバーにピン止めさせて次回から起動に利用することもできます。



社内で扱う独自作成の業務系アプリケーションであれば、SQLServer等のデータベースへの接続が前提となるでしょう。 そうであればセキュリティ上、社外からのアクセスを行なうような仕組みではないでしょうから、このような方法を考えても良いのではないでしょうか。
実際には利用者のPCにインストールされるのですが、機能の改廃などがあっても起動時に更新インストールが行なわれるので、 常に最新状態で利用されるようにできます。



従来は無償版のVisual Studioでは「ClickOnce」の発行はできなかったのですが、 「Visual Studio 2017」以降では無償の「Community」エディジョンでも「ClickOnce」の発行が実行できるので、 ローカルPCIISをインストールするなどで これらの動作を確認することができます。

Visual Studio側での作業はこのようになります。

ここからは「ClickOnce」の発行を行なうまでの設定の説明になります。
業務系アプリケーションを想定すると、機能改廃のため何度もバージョンアップする可能性があるため、 その場で「発行ウィザード(公開ウィザード)」を動かすのではなく、一通りの設定を保存させて次回以降の発行作業にも利用できるようにすることを念頭に説明します。

作業は起動プロジェクトのMy Projectの中だけで行ないます。

My Projectの「発行」タブ

My Projectの「発行」タブ(現在のVisualStudioでは「公開」タブに変わっています)で設定を行ないます。
機能改廃等でたびたび発行作業を行なう前提だと「発行ウィザード(公開ウィザード)」を使うのではなく、必要な設定を行なってMy Projectを保存して下さい。
「発行場所(公開場所)」はこのような感じですが、一般には「発行(公開)フォルダーの場所」はVisual StudioのあるPCのローカルで、 「インストールフォルダーのURL」は別のWebサーバになるはずなので、正しいURLを指定する必要があります。
「バージョンの発行」のところのバージョン値はアプリケーションの「アセンブリバージョン」と揃えておくと管理がしやすいと思います。

「アプリケーションファイル」

「アプリケーションファイル」ボタンをクリックするとこのような画面が表示されます。
ここでは通常のケースでは変更を行なう必要は発生しないと思います。

「必須コンポーネント」

「必須コンポーネント」ボタンをクリックするとこのような画面が表示されます。
アプリケーションに必要なコンポーネントがあればここでチェックを付けます。

「更新」

「更新」ボタンをクリックするとこのような画面が表示されます。
「アプリケーションの更新を確認する」「アプリケーションの開始前の行う」には必ずチェックを付けて下さい。 そうでないと、このページで説明している意味がなくなります。
「このアプリケーションに最低限必要なバージョンを指定する」にもチェックを付けて、現在のバージョンと同じバージョンにして下さい。 下位バージョンを指定した場合は利用者が過去のバージョンに戻すことができるようになってしまいます。

「オプション」- 説明

「オプション」ボタンをクリックするとこのような画面が表示されます。
「説明」では「発行者名」「製品名」を登録し、これはこのページの先頭画像のインストールページに表示されるようになります。 「サポートURL」にはサンプルなので「データベース接続を行なう(SQLServer)を登録してみました。 スタートメニューの「~ オンラインサポート」をクリックするとこのページが表示されるようになります。

「オプション」- 配置

「配置」ではインストール用のWebページを指定します。
ここで指定しないとインストール用のWebページは作成されません。 また「発行後に毎回配置Webページを自動的に生成する」にもチェックを付けて下さい。
さらに「".deploy"ファイル拡張子を使用する」にもチェックを付けて下さい。 これはWebページに置かれるアプリケーションの拡張子を偽装するものでセキュリティ上で必要な手段です。

「オプション」- マニフェスト

「マニフェスト」はデフォルトでは何もチェックがない状態ですが、このままで良いようです。 デスクトップにショートカットを作成する場合は「デスクトップショートカットの作成」にチェックを付けます。

「オプション」- ファイルの関連付け

「ファイルの関連付け」では拡張子の登録ができます。
ここで想定しているような業務系アプリケーションでは発生しないと思います。
ここまでの設定が行なえたら、My Projectの画面に戻って「今すぐ発行(公開)」で発行が行なえます。 但し、まだ作業があります。

「署名」

「署名」タブを見ると、「ClickOnceマニフェストに署名する」にチェックが付いていて証明書が自動的に作られているはずです。
この証明書は一般に「テスト証明書」とか言われるものでローカルPC内では問題ありませんが、 異なるWebサーバに配置した場合は近年のブラウザのセキュリティ上の処置で起動できなくなります。
また、ソリューション内に作成されている「*.pfx」についても、これがその「テスト証明書」なので削除して下さい。

.NET Framework3.5」からはデジタル証明書無しでのClickOnceの発行ができるようになっているので、 ここでは「ClickOnceマニフェストに署名する」のチェックを外してから「今すぐ発行(公開)」をやり直して下さい。 正規の認証局のデジタル証明書を登録する場合を除いて、ここにチェックを付けることはありません。

これでMy Projectを保存しておけば、これらの設定が保持されます。

発行先フォルダの内容

「今すぐ発行(公開)」を行なうと「発行(公開)フォルダーの場所」で指定したフォルダにこのように必要なファイル、サブフォルダが作成されます。 ここにはインストールページの「Publish.htm」も作成されています。
これらをそのままインストールページを配置するWebサーバに配置すれば機能します。

発行先フォルダの内容

Application Files」の中を見ると、このようにバージョンごとのサブフォルダが作成されていて、その中にインストールするためのファイルがそれぞれ配置されます。 「このアプリケーションに最低限必要なバージョンを指定する」で指定したバージョンより低いバージョンは実際には利用されないので、 何回もバージョンアップを繰り返す運用の場合は定期的に古いバージョンのフォルダは削除して下さい。