ClickOnce(クリックワンス)アプリケーションを起動しようとしたら、突然エラーが出て動かなくなった……そんな経験はありませんか?
実は、ClickOnceの起動不具合は「キャッシュとレジストリの整合性が崩れた」ことが主な原因です。
この記事では、ClickOnceが起動しない原因をパターンごとに整理し、Microsoft公式が推奨する対処手順をわかりやすく解説します。
ClickOnceとは
ClickOnce(クリックワンス)は、Webページのリンクをクリックするだけで、Windowsアプリをインストール・実行できるMicrosoftの配置技術です。
従来のインストーラー(.exeや.msiファイル)とは異なり、ブラウザからそのまま起動できるのが特徴で、会計ソフト・業務アプリ・社内ツールなど、企業の業務システムで広く使われています。
ClickOnceが動作するには、以下の2つのデータが常に同期していることが必要です。
| 管理場所 | パス |
|---|---|
| ファイルキャッシュ | %userprofile%\AppData\Local\Apps\2.0 |
| レジストリキー | HKEY_CURRENT_USER\Software\Classes\Software\Microsoft\Windows\CurrentVersion\Deployment\SideBySide\2.0 |
この2つが何らかの理由で不一致になると、ClickOnceはエラーを起こして起動できなくなります(Microsoft Learn「ClickOnce アプリケーションの更新に失敗する」より)。
ClickOnceが起動しない主な原因
ファイルとレジストリの整合性が崩れた
最も多い原因です。
以下のような状況が発生すると、ファイルキャッシュとレジストリの内容がバラバラになります。
- インストール・更新中に電源が落ちた(停電・強制シャットダウン)
- インストール・更新中にコンピューターをそのままシャットダウンした
- ClickOnceローダープロセス(dfsvc.exe)が予期せず終了した
- バックアップソフトがファイルのみ、またはレジストリのみを復元した
- 移動プロファイル(ローミングプロファイル)を使用している環境で起動した
(出典:Japan Developer Support Core Team Blog「ClickOnce アプリケーションのインストールや更新の後に発生する場合があるアプリケーション起動時のエラーについて」)
なお、移動プロファイルはClickOnceが公式にサポートしていない環境です。
この環境では同様の問題が繰り返し発生するため、根本的には環境設定の見直しが必要になります。
ウイルス対策ソフトによるブロック
ウイルス対策ソフトがClickOnceのファイルやレジストリへのアクセスを阻害したり、問題のあるファイルとして隔離・削除したりするケースがあります。
サードパーティ製のセキュリティソフトが原因で不整合が生じることが確認されています(Microsoft公式ブログより)。
EdgeのClickOnce設定が無効になっている
ChromiumベースのMicrosoft Edge(Edge 87以降)ではClickOnceはデフォルトで有効ですが、グループポリシーや手動設定によって無効化されている場合があります。
その場合、.applicationファイルをクリックしてもダウンロードされるだけで起動できません。
EdgeのClickOnce設定については、Windowsでブラウザのデフォルト設定を変更する方法も合わせて参考にしてください。
組み込みの管理者アカウントによる制限
Windowsの「組み込みの管理者アカウント(Built-in Administrator)」からは、ClickOnceアプリが起動できない場合があります(Microsoft サポートより)。
この場合は別の通常ユーザーアカウントで試すか、管理者承認モードのポリシーを有効にすることで解決できます。
エラーメッセージの種類と見分け方
ClickOnceが起動しないとき、「詳細」ボタンを押すと以下のようなエラーメッセージが確認できます。
エラーの種類によって原因が異なるため、まず内容を確認してください。
| エラーの内容 | 考えられる原因 |
|---|---|
System.ArgumentException - 値が有効な範囲にありません | 必要なレジストリキーが見つからない |
Windows Side-by-Side エラーにより認証に失敗しました | キャッシュのマニフェストファイルが破損 |
System.IO.FileNotFoundException - 指定されたファイルが見つかりません | キャッシュのファイルが部分的に欠落 |
System.BadImageFormatException - 有効な Win32 アプリケーションではありません | キャッシュのEXEファイルが破損 |
いずれのエラーも、ClickOnceキャッシュとレジストリの整合性に問題が生じていることを示しています。
スタックトレースに ComponentStore.ActivateApplication が含まれていれば、この問題に該当している可能性が高いです(Japan Developer Support Core Team Blogより)。
解決方法【優先順位順に試す】
以下の方法を上から順番に試してください。
多くのケースは方法1〜3で解決します。
方法1:アンインストールして再インストールする
オフラインでも実行できるClickOnceアプリ(インストール型)に有効な方法です。
- 「スタート」→「設定」→「アプリ」を開く
- 一覧から問題のClickOnceアプリを選択し「アンインストール」をクリックする
- 完了後、配布URLやショートカットからアプリを再インストールする
これで解決しない場合、またはオンラインのみで実行するアプリの場合は方法2へ進みます。
方法2:ClickOnceファイルキャッシュを削除する
Microsoft公式が推奨する最も確実な対処法です。
レジストリキーを削除する必要はありません。ファイルキャッシュのみを削除します(Microsoft Learn公式より)。
⚠️ この操作を行うと、インストール済みのすべてのClickOnceアプリのキャッシュが削除されます。
次回起動時に自動で再インストールが行われますが、念のため重要なデータはバックアップしてください。
手順:
- 「Windows + R」キーを押して「ファイル名を指定して実行」を開く
- 以下のパスを入力して「OK」を押す
%userprofile%\AppData\Local\Apps
- 「2.0」フォルダを開く
- 「2.0」フォルダ内のすべてのファイル・フォルダを削除する
- PCを再起動し、ClickOnceアプリを再度起動する
なお、「AppData」フォルダが表示されない場合は、エクスプローラーで「表示」→「隠しファイル」を有効にしてください。
方法3:コマンドでキャッシュをクリアする
コマンドプロンプトからキャッシュをクリアする方法が2種類あります。
方法2を試した後に解決しない場合や、コマンドで素早く対処したい場合に使います。
コマンド①(dfshim.dllを使う方法):
管理者権限でコマンドプロンプトを開き、以下を実行します。
rundll32 %windir%\system32\dfshim.dll CleanOnlineAppCache
コマンド②(Mage.exeを使う方法):
.NET Framework SDKがインストールされている場合に使えます。
Mage.exe -cc
いずれのコマンドも実行後、ClickOnceアプリを再起動して動作を確認してください。
方法4:EdgeのClickOnce設定を有効にする
Microsoft Edgeでブラウザ経由のClickOnceが起動しない場合に確認します。
- Edgeのアドレスバーに以下を入力して「Enter」を押す
edge://flags/#edge-click-once
- 「ClickOnce Support」の項目を「Enabled」に変更する
- 「再起動」をクリックしてEdgeを再起動する
再起動後、ClickOnceの.applicationファイルを再度クリックして動作を確認してください。
方法5:レジストリでEdgeのClickOnceを強制的に有効化する
グループポリシーでClickOnceが無効化されている環境では、方法4では設定できない場合があります。
その場合は、管理者権限のコマンドプロンプトから以下のコマンドを実行します。
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge" /v "ClickOnceEnabled" /t REG_DWORD /d "1" /f
実行後、Edgeのアドレスバーで edge://policy/ を開き、「ClickOnceEnabled」が「true」になっていることを確認します。
確認できたらPCを再起動し、ClickOnceアプリを再度起動してください。
方法6:SmartScreenの設定を見直す
Windows Defenderのスマートスクリーン機能がClickOnceのインストールをブロックしているケースがあります。
以下の手順で設定を確認します。
Windows 10の場合:
- 「スタート」→「設定」→「更新とセキュリティ」→「Windowsセキュリティ」を開く
- 「アプリとブラウザーの制御」をクリックする
- 「評価ベースの保護設定」→「アプリとファイルの確認」を確認する
Windows 11の場合:
- 「スタート」→「設定」→「プライバシーとセキュリティ」→「Windowsセキュリティ」を開く
- 「アプリとブラウザーの制御」をクリックする
- 「評価ベースの保護設定」→「アプリとファイルの確認」を確認する
設定を変更する場合は、セキュリティリスクを十分に理解した上で自己責任で行ってください。
変更後は必ず元の設定に戻すことを推奨します。
ClickOnceのログを確認する方法
エラーの詳細を調べたい場合、ClickOnceはログファイルを自動生成します。
エラーダイアログの「詳細」ボタンを押すと、一時ファイルフォルダ内のログが表示されます。
ログの保存先を変更したい場合は、レジストリエディター(regedit)で以下のキーに移動し、文字列値「LogFilePath」を追加して書き込み可能な任意のフォルダパスを設定します(Microsoft Learn「ClickOnce のトラブルシューティング」より)。
HKEY_CURRENT_USER\Software\Classes\Software\Microsoft\Windows\CurrentVersion\Deployment
Windowsのスタートアップに登録しているアプリが起動しない場合は、Windows 11のスタートアップフォルダの場所と管理方法を完全解説も参考にしてください。
また、ClickOnceアプリの起動に使うブラウザの設定が関係している場合は、Windowsでリンクの種類ごとに既定のアプリを設定する方法も確認してみてください。
まとめ
ClickOnceが起動しない原因の多くは、ファイルキャッシュとレジストリの整合性が崩れたことによるものです。
Microsoft公式の推奨対処は「レジストリキーの削除は不要で、ファイルキャッシュのみを削除する」という方針です。
まずはアンインストール・再インストール(方法1)を試し、解決しない場合は %userprofile%\AppData\Local\Apps\2.0 フォルダのキャッシュ削除(方法2)を実施してください。
Edgeブラウザ経由で起動できない場合は、edge://flags/#edge-click-once から「ClickOnce Support」を「Enabled」に変更することで解決するケースが多いです。
上記の方法を試しても解決しない場合は、ClickOnceアプリの開発元・提供元にエラーメッセージの詳細を添えてお問い合わせください。
参考情報源
- Microsoft Learn「ClickOnce アプリケーションの更新に失敗する」(最終更新:2024年4月15日)
- Japan Developer Support Core Team Blog「ClickOnce アプリケーションのインストールや更新の後に発生する場合があるアプリケーション起動時のエラーについて」(2020年9月29日)
- Microsoft Learn「ClickOnce 配置に関するエラーのトラブルシューティング」
- Microsoft Learn「ClickOnce アプリのインストールまたは起動に失敗する」
- Microsoft Learn「Microsoft Edge で ClickOnce と DirectInvoke を使用する」
- Microsoft サポート「Windows 10 では、組み込みの管理者アカウントから ClickOnce アプリケーションが起動しない場合がある」


コメント