知識マップ: ClickOnce とは何か - 仕組み、更新、向いている場面・向いていない場面を実務目線で整理
記事「ClickOnce とは何か - 仕組み、更新、向いている場面・向いていない場面を実務目線で整理」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
ClickOnceは、配置マニフェストとアプリケーションマニフェストを中心に、配布・更新・キャッシュ管理をまとめて扱う.NET Windowsデスクトップアプリの配布モデルです。per-user配布で標準ユーザーへ管理者権限なしに配れ、file patchingで変更分だけを取得し、アプリごと・利用者ごと・バージョンごとに分離されたClickOnceキャッシュによってDLL Hellを避けやすくします。一方で、machine-wide installやWindows service・driverのようなOS統合、package identityが必要な要件には向かず、MSIやMSIXから検討すべきです。マニフェストへの署名にはコード署名証明書を使い、配置先を動かす際はdeploymentProviderの見直しと再署名が欠かせません。
flowchart LR
accTitle: ClickOnceの知識マップ
accDescr: ClickOnceが配置マニフェストとアプリケーションマニフェストを中心にper-user配布とfile patchingによる自動更新を実現する一方、machine-wide installやpackage identityやWindows serviceが必要な要件ではMSIやMSIXへ寄るべきという関係を示す図
clickonce["ClickOnce"]
per_user_deployment["per-user配布(利用者単位)"]
deployment_manifest["配置マニフェスト(.application)"]
application_manifest["アプリケーションマニフェスト(*.exe.manifest)"]
code_signing_cert["コード署名証明書"]
clickonce_cache["ClickOnceキャッシュ"]
dll_hell["DLL Hell"]
setup_exe_bootstrapper["setup.exe(bootstrapper)"]
file_patching["file patching"]
deployment_provider["deploymentProvider"]
machine_wide_install["machine-wide install(端末単位)"]
msi["MSI(Windows Installer)"]
admin_rights["管理者権限"]
msix["MSIX"]
package_identity["package identity"]
windows_service["Windowsサービス"]
publish_tool["Publish tool"]
dotnet[".NET(Core以降)"]
dotnet_mage["dotnet-mage.exe"]
application_deployment_api["ApplicationDeployment API"]
dotnet_framework[".NET Framework"]
pubxml["発行プロファイル(.pubxml)"]
offline_availability["オフライン利用ありの構成"]
application_settings_migration["アプリケーション設定の持ち越し"]
self_signed_cert["アドホックな自己署名証明書"]
clickonce -->|"利用する"| deployment_manifest
deployment_manifest -->|"利用する"| application_manifest
application_manifest -.->|"で構成できる"| code_signing_cert
deployment_manifest -.->|"で構成できる"| code_signing_cert
clickonce -->|"利用する"| clickonce_cache
clickonce_cache -->|"軽減する"| dll_hell
setup_exe_bootstrapper -->|"より先に行うべき"| deployment_manifest
clickonce -->|"利用する"| file_patching
clickonce -.->|"前提とする"| deployment_provider
per_user_deployment -->|"両立しない"| machine_wide_install
clickonce -->|"推奨される対応"| per_user_deployment
msi -->|"推奨される対応"| machine_wide_install
machine_wide_install -.->|"前提とする"| admin_rights
msix -->|"推奨される対応"| package_identity
clickonce -->|"用いるのは非推奨"| package_identity
clickonce -->|"用いるのは非推奨"| windows_service
publish_tool -->|"実装を担う"| clickonce
publish_tool -.->|"前提とする"| dotnet
dotnet_mage -->|"実装を担う"| deployment_manifest
application_deployment_api -->|"両立しない"| dotnet
application_deployment_api -->|"前提とする"| dotnet_framework
publish_tool -->|"利用する"| pubxml
offline_availability -.->|"前提とする"| deployment_provider
clickonce -.->|"自動化する"| application_settings_migration
self_signed_cert -->|"用いるのは非推奨"| clickonce
概念間の関係(全25件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- ClickOnceは配置マニフェスト(.application)を利用します。
- 配置マニフェスト(.application)はアプリケーションマニフェスト(*.exe.manifest)を利用します。
- アプリケーションマニフェスト(*.exe.manifest)はコード署名証明書で構成できます。
- 配置マニフェスト(.application)はコード署名証明書で構成できます。
- ClickOnceはClickOnceキャッシュを利用します。
- ClickOnceキャッシュはDLL Hellを軽減します。
- setup.exe(bootstrapper)は配置マニフェスト(.application)より先に行うべきです。
- ClickOnceはfile patchingを利用します。
- ClickOnceはdeploymentProviderを前提とします。
- per-user配布(利用者単位)はmachine-wide install(端末単位)と両立しません。
- ClickOnceはper-user配布(利用者単位)に対する本記事の推奨です。
- MSI(Windows Installer)はmachine-wide install(端末単位)に対する本記事の推奨です。
- machine-wide install(端末単位)は管理者権限を前提とします。
- MSIXはpackage identityに対する本記事の推奨です。
- ClickOnceをpackage identityに用いることは推奨されません。
- ClickOnceをWindowsサービスに用いることは推奨されません。
- Publish toolはClickOnceの実装を担います。
- Publish toolは.NET(Core以降)を前提とします。
- dotnet-mage.exeは配置マニフェスト(.application)の実装を担います。
- ApplicationDeployment APIは.NET(Core以降)と両立しません。
- ApplicationDeployment APIは.NET Frameworkを前提とします。
- Publish toolは発行プロファイル(.pubxml)を利用します。
- オフライン利用ありの構成はdeploymentProviderを前提とします。
- ClickOnceはアプリケーション設定の持ち越しを自動化します。
- アドホックな自己署名証明書をClickOnceに用いることは推奨されません。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。