投稿者 魔界の仮面弁士  (社会人) 投稿日時 2024/2/23 08:18:03
> 別PCではインストールが完了するものの、メインのフォームが表示されず、ジタバタしていました。

発行されたのに、特定の環境では起動しない場合、依存ファイルや設定ファイルが不足している場合や、
特定のセキュリティ 製品(Kaspersky, Trendmicro 等)との相性上の理由、あるいは、
Windows Update の不具合などが理由で起動が阻害されているパターンなど様々な要因があり、
仔細調査の上、それぞれの事象に合わせて個別に対処が必要です。

起動時にエラーメッセージが出るものや、起動完了前にエラー表示もなく強制終了するケース、
イベントログにエラーが記録されるケースなど様々ではありますが、幾つかのケースを紹介しておきます。
Windows Update が原因の場合は、次回配信で修正されることが多いので、直近の更新分を消してやると回復するかもしれません。
https://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?no=11441&reno=11440&oya=11436&mode=msgview&page=0
https://twitter.com/Benshi_Orator/status/1660537176550150146
https://twitter.com/Benshi_Orator/status/1691619040530194933
https://twitter.com/Benshi_Orator/status/996931780304293888


• 何らかの理由で通信に失敗した場合、以前の中途半端なキャッシュが残ったままになることで、再インストールしても
 正しく動作しない状況が続いてしまうことがあります。この場合、コントロールパネルからアプリを削除した後で、
 %LocalAppData%\Apps\2.0\ にあるアプリをフォルダーごと消してから再インストールを試してみてください。
https://jpdscore.github.io/blog/deployment/fail-to-launch-clickonce-apps-after-updated/

• ClickOnce では起動しないが EXE コピーでは起動する場合、セキュリティ上の理由で起動阻害されている可能性があります。
 ◦ClickOnce の配布元を Web サイトにしている場合は、そのサイトを信頼済みサイトに登録してみる。
 ◦ネットワークをオフライン状態にした状態であれば起動できないかを試してみる。

• Windows 10 v1803 という古い環境限定でしたが、インストールした exe に、誤ってゾーン識別子の
 代替ストリームが付いてしまう事象が発生したことがあります。
 この場合、インストールされた exe を右クリックしてプロパティを開き、一番下にセキュリティ欄が出ているか確認してみてください。
 出ていた場合は、「許可する」にチェックを付けて保存することで、ゾーン識別子が削除されて起動するようになります。
 → ゾーン識別子を消さずとも、SmartScreen を [無効] にすると起動します(起動時にブロック警告は出る)。
  SmartScreen が [ブロック]や[警告]の場合は何も起動しない状態です(エラーメッセージもなし)。
  SmartScreen が有効でも、LANケーブルを抜いてオフラインにすると実行されるので、起動後にLANケーブルを戻すことで動きだします。
 → この事象は、ClickOnce アプリの新規インストールおよび自動更新時にのみ発生した問題でした。
  Win10 1709 の頃にインストールしたアプリは、OS が 1803 に更新されてもゾーン識別子が無いままなので、正常に動作します。
  (その後、Windows Update によって 1803 環境でも再発しないようになったので、過去の事例ではありますが)

• WPF の場合、グラフィックドライバーが原因でうまく起動しないことがあります(ClickOnce でなくとも同じ)。
 最近の環境であればほとんど問題ないとは思いますが、グラフィック機能の弱い古いサーバー環境などでは
 グラフィック ドライバーの更新などによって改善することがあります。

• 32bit な ActiveX コントロールを使っているプロジェクトが起動しないという問題があって調べたところ、
 古いプロジェクトからマイグレーションしたプロジェクトであったが故に、その exe が AnyCPU ビルドだったという
 事故がありました(リリース当時は AnyCPU32bitPreferred モードが存在しないが、32bit OS が全盛だったため問題が発覚しなかった)。
 この時は x86 版な別アプリとして発行しなおすことで回復させましたが、事情があってリビルドできない場合は、
 インストールされた exe を、CoreFlags.exe で強制的に「-32BITREQ+」して exe を書き換えるという暫定措置で対応しました。

• 3 年前ですが、Acronis True Image 2020 / Acronis Active Protection という製品との相性問題を経験しました。
 (自分自身は同製品を見たことが無いのですが、その製品を止めてもらったら動き出した)
 製品のログを見ると
  「次のアプリケーションがブラックリストに登録されました:」
  「プロセスがブロックされました:」
  「複数のフォルダの内容が、互いに類似する疑わしいパターンによって変更されました」
 と記録されていました。ClickOnce なので、バージョンアップ時には Apps\2.0\ 配下に複数のフォルダーを作るし、
 類似したファイルも配置されるので、相性が悪い…。(今は改善されているのかな?)
 → 同様の事象は、Kaspersky を使っているユーザーでも発生したことがあります。

• 起動障害とは別件ですが、OS を再起動すると ClickOnce アプリが未インストール状態に戻ってしまい、
 ショートカットから起動すると、毎回、新規インストールが走ってしまったり、あるいはショートカットファイル自体が
 消えてしまうという問題が起きたことがおります。(Windows Update による一時的な問題だったので、その後の自動更新で回復)
https://twitter.com/Benshi_Orator/status/1690941144522539008

• 起動障害とは別件ですが、設定情報を My.Settings.Save しているアプリの場合、ごく稀に、設定ファイルが
 バイナリ 00 で埋め尽くされることがあるようです。破損した user.config ファイルを手動あるいはプログラムから削除すれば回復します。
https://twitter.com/Benshi_Orator/status/1590999779177541633
https://twitter.com/Benshi_Orator/status/1683299933716353024