Windows7で「このプログラムは正しくインストールされなかった可能性があります」と表示される

自作したプログラムをWindows 7 上で動かすと、なぜか表題のダイアログが表示される。
今まで互換性の無い古いプログラムを動かすと出てたように思ったので、何か非推奨の古いAPIでも呼んじゃったのかなと思って調べてみたが、どうやらそうではないらしい。

<参考>DSAS開発者の部屋 - 「このプログラムは正しくインストールされなかった可能性があります」を回避する方法 (Windows 7, Vista)
http://dsas.blog.klab.org/archives/51785861.html

上記ブログによると下記項目を全て満たしていると出るようだ。
  • Windows ログオンセッションが UAC 環境下にある
  • 当該プログラムは HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall (アンインストール情報)下のキーへの登録を行わない
  • 当該プログラム名に「install」「setup」「update」等の文字列が含まれる
  • (Vista のみ)当該プログラムにマニフェストがリンクされていない、または、マニフェストに管理者権限への昇格指定が記述されていない
  • (7 のみ)上の「(Vista のみ)」での内容がいずれも OK でも、マニフェストに 7 互換指定が記述されていない
今回自分は作成したプログラムには「Setup」の文字列が入っていたので、プロジェクトを別名で作り替えた所、ダイアログは出なくなった。

これでめでたしと思っていたが、プロジェクトを作り替えるのは面倒だし、プログラム名が制限されるのも面白くないので、マニュフェストファイルを作る方が良いかもしれない。
まだ試していないが、下記ブログを参考にすると出来そうなので紹介しておく。

<参考>吟遊詩人の戯言 - 【#VS】「このプログラムは正しくインストールされなかった可能性があります」@Win7

コメント