@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/2026/03/20/000-windows-app-deployment-msi-msix-clickonce-xcopy-custom-updater/#article>
    schema:about <https://comcomponent.com/knowledge/msi/>, <https://comcomponent.com/knowledge/msix/>, <https://comcomponent.com/knowledge/clickonce/> ;
    schema:mentions <https://comcomponent.com/knowledge/xcopy-deployment/>, <https://comcomponent.com/knowledge/custom-updater/>, <https://comcomponent.com/knowledge/package-identity/>, <https://comcomponent.com/knowledge/shell-extension/>, <https://comcomponent.com/knowledge/driver-package/>, <https://comcomponent.com/knowledge/windows-service/>, <https://comcomponent.com/knowledge/com/>, <https://comcomponent.com/knowledge/dotnet/>, <https://comcomponent.com/knowledge/code-signing-cert/>, <https://comcomponent.com/knowledge/closed-network/> .

<https://comcomponent.com/knowledge/msi/> a skos:Concept ;
    skos:prefLabel "MSI(Windows Installer)"@ja ;
    skos:definition "Windowsの標準インストーラーパッケージ形式。ALLUSERSプロパティなどでインストール先の範囲を選べ、machine-wide installが一般的だがユーザー単位のインストールもできる。"@ja ;
    skos:altLabel "Windows Installer" ;
    skos:altLabel "MSI" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-service/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/driver-package/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/shell-extension/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/closed-network/> .

<https://comcomponent.com/knowledge/msix/> a skos:Concept ;
    skos:prefLabel "MSIX"@ja ;
    skos:definition "package identityを持つ、Windowsのモダンなアプリパッケージング形式。"@ja ;
    skos:altLabel "MSIX" ;
    ks:implements <https://comcomponent.com/knowledge/package-identity/> ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/driver-package/> ;
    ks:requires <https://comcomponent.com/knowledge/code-signing-cert/> .

<https://comcomponent.com/knowledge/clickonce/> a skos:Concept ;
    skos:prefLabel "ClickOnce"@ja ;
    skos:definition ".NETのWindowsデスクトップアプリを、利用者単位で簡単に配り、自動更新まで含めて回すための配布技術。マニフェストを中心に配布・更新・キャッシュ管理をまとめて扱う配布モデル。"@ja ;
    skos:altLabel "ClickOnce配布"@ja ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/windows-service/> .

<https://comcomponent.com/knowledge/windows-service/> a skos:Concept ;
    skos:prefLabel "Windowsサービス"@ja ;
    skos:definition "ユーザーのサインインと無関係にバックグラウンドで動くWindowsのプロセス。"@ja ;
    skos:altLabel "サービス"@ja .

<https://comcomponent.com/knowledge/driver-package/> a skos:Concept ;
    skos:prefLabel "ドライバーパッケージ"@ja ;
    skos:definition "デバイスドライバーをシステムへ導入するためのパッケージで、通常のアプリ配布方式とは別問題として扱われる。"@ja ;
    skos:altLabel "デバイスドライバーの導入パッケージ"@ja .

<https://comcomponent.com/knowledge/shell-extension/> a skos:Concept ;
    skos:prefLabel "シェル拡張(エクスプローラー拡張)"@ja ;
    skos:definition "右クリックメニューやアイコン表示など、エクスプローラーへ組み込まれる部品。"@ja ;
    skos:altLabel "shell extension" ;
    skos:altLabel "in-process shell extension" .

<https://comcomponent.com/knowledge/com/> a skos:Concept ;
    skos:prefLabel "COM(コンポーネントオブジェクトモデル)"@ja ;
    skos:definition "公開インターフェース、レジストリ登録、Apartment Modelなどを土台にした、Windowsのバイナリ互換コンポーネントモデル。"@ja ;
    skos:altLabel "Component Object Model" .

<https://comcomponent.com/knowledge/closed-network/> a skos:Concept ;
    skos:prefLabel "閉域ネットワーク"@ja ;
    skos:definition "インターネットに接続せずに運用する隔離されたネットワーク。"@ja ;
    skos:altLabel "オフライン環境"@ja ;
    skos:altLabel "切断環境"@ja .

<https://comcomponent.com/knowledge/package-identity/> a skos:Concept ;
    skos:prefLabel "package identity"@ja ;
    skos:definition "MSIXなどのパッケージが持つ、Windowsが認識する一意の識別子。名前、バージョン、アーキテクチャ、ResourceId、発行元という5つの組で構成される。"@ja ;
    skos:altLabel "パッケージID"@ja .

<https://comcomponent.com/knowledge/code-signing-cert/> a skos:Concept ;
    skos:prefLabel "コード署名証明書"@ja ;
    skos:definition "ソフトウェアの発行元を証明し、改ざんを検出するための証明書。"@ja ;
    skos:altLabel "Authenticode証明書"@ja .

<https://comcomponent.com/knowledge/dotnet/> a skos:Concept ;
    skos:prefLabel ".NET(Core以降)"@ja ;
    skos:definition ".NET Frameworkの後継となる、クロスプラットフォーム対応の.NETランタイム(.NET 5以降)。"@ja ;
    skos:altLabel ".NET Core" ;
    skos:altLabel "モダンな.NET"@ja .

<https://comcomponent.com/knowledge/xcopy-deployment/> a skos:Concept ;
    skos:prefLabel "xcopy配布"@ja ;
    skos:definition "レジストリ登録や修復機能、package identityを持たず、フォルダーごとファイルを配置するだけで動作させる配布方式。"@ja ;
    skos:altLabel "xcopyデプロイ"@ja ;
    skos:altLabel "xcopy" ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/windows-service/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/closed-network/> .

<https://comcomponent.com/knowledge/custom-updater/> a skos:Concept ;
    skos:prefLabel "独自updater"@ja ;
    skos:definition "署名検証・配信manifest・rollback・チャネル管理などを自社で設計・運用する、独自実装のソフトウェア更新の仕組み。"@ja ;
    skos:altLabel "独自の更新機構"@ja ;
    skos:altLabel "自前updater"@ja .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msi/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "全ユーザー向けでWindowsサービスやmachine-wideな設定があるなら、まずMSIを起点に考えるべきというのが本記事の判断表の推奨である"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/msi/windows-installer-portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msi/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/driver-package/> ;
    schema:description "ドライバーが必要な場合、本記事はMSIXではなくMSIか専用インストーラー寄りで考えるべきだとしている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/msi/windows-installer-portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msi/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/shell-extension/> ;
    schema:description "in-process shell extensionが必要な場合、本記事はMSIか専用インストーラー寄りを基本線として挙げている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/msix/packaging-tool/support-legacy-context-menus> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msi/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/com/> ;
    schema:description "アプリがCOMコンポーネントの登録を必要とする場合、MSIはそのCOM登録やfile association、machine-wideな設定を伴う導入に利用される。COM登録を伴わないアプリのMSIも多い"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/msi/windows-installer-portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msi/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/closed-network/> ;
    schema:description "閉域・オフライン配布の観点でMSIは比較表でも◎とされ、強い選択肢として挙げられている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/win32/msi/windows-installer-portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msix/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/package-identity/> ;
    schema:description "MSIXはmodern packagingの中核としてpackage identityの実装を担う"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/msix/overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msix/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/driver-package/> ;
    schema:description "ドライバーとの相性は比較表で×であり、driver packageはMSIXには不向きとされている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/msix/overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msix/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/shell-extension/> ;
    schema:description "in-process shell extensionは基本的にMSIXでは不向きだが、Windows 11 21H2以降ならマニフェスト宣言で条件付きに対応できると本記事は注記している"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/msix/packaging-tool/support-legacy-context-menus> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msix/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/closed-network/> ;
    schema:description "閉域配布でもMSIXはApp Installerの使い方次第で回るとされている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/msix/app-installer/app-installer-file-overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/msix/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/code-signing-cert/> ;
    schema:description "MSIXの配布ではsigntool.exeなどによる署名が前提となる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/msix/overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/clickonce/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/dotnet/> ;
    schema:description "ClickOnceは.NETのWindowsデスクトップアプリをper-userで簡単に配布・自動更新するための技術である。.NET Framework時代からある技術で、.NET Framework/.NETのどちらのアプリでも発行できるため、対象は.NET全般であって.NET(Core以降)に限らない"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/visualstudio/deployment/clickonce-security-and-deployment?view=visualstudio> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/clickonce/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/closed-network/> ;
    schema:description "ClickOnceはfile shareやremovable mediaを使えば閉域配布にも使えるとされている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/visualstudio/deployment/clickonce-cache-overview?view=visualstudio> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/clickonce/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "サービスとの相性は比較表で×であり、OSへ深く触るタイプの製品への利用は安全でないとされている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/visualstudio/deployment/clickonce-security-and-deployment?view=visualstudio> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/xcopy-deployment/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-service/> ;
    schema:description "xcopyの弱点としてfile association・service・shell extension・driverが挙げられている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/apps/package-and-deploy/packaging/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/xcopy-deployment/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/closed-network/> ;
    schema:description "閉域・USB配布・管理者権限なしを優先するならxcopyがいちばん素直だとされている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/apps/package-and-deploy/packaging/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/custom-updater/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/code-signing-cert/> ;
    schema:description "独自updaterで更新の安全性を担保する設計にするなら、署名検証とそのためのコード署名証明書の運用を自分たちで設計・運用する責任を負うことになる。技術的には署名検証なしでも動作はするが、その場合は改ざんされた更新を検知できない"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/msix/app-installer/app-installer-file-overview> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/custom-updater/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/closed-network/> ;
    schema:description "閉域・オフライン配布の比較表で独自updaterも◎とされている"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows/apps/package-and-deploy/packaging/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .
