none
「すべてのユーザ」にインストールしたアプリケーションが起動できない RRS feed

  • 質問

  • Visual Studio 2008のセットアッププロジェクト作成したインストーラを実行し、「すべてのユーザ」にインストールしましたが、インストーラを実行したユーザ以外でアプリケーションが実行できません。回避方法がありましたら、教えていただけないでしょうか?

    以下、再現手順です。

    1. VS2008でインストーラを作成。インストーラでは以下を実行しています。
      ‐ プログラムの配置(exe+dll)
      - デスクトップ、スタートメニューへのショートカット作成
      - ファイルの関連付け
    2. 開発環境とは別のPCでインストーラを実行
      - OSはWin7
      - インストーラを実行するのは管理者権限を持ったユーザ(以下、adminとします。)
      - インストール時に「すべてのユーザにインストール」を選択
    3. インストール後、adminでアプリケーションが実行できることを確認し、インストーラを削除
    4. adminからログアウトし、管理者権限を持たないユーザ(以下、user01とします)でログイン
    5. user01でアプリケーションを実行すると、インストーラパッケージを求められ、起動できない。

    インストールされたexeファイルを直接ダブルクリックすればアプリケーションは起動するのですが、ショートカットや関連付けされたファイルから実行すると、上記の現象が発生します。

    ショートカットについてはアドバタイズショートカットをやめれば回避できることは確認しました(orcaでDISABLEADVTSHORTCUTSをセットしました)。しかし、関連付けされたファイルについては対策が分からない状況です。

    アドバイスいただけるとうれしいです。よろしくお願いします。

    2012年11月5日 12:44

回答

  • アドバタイズショートカット、関連付け、COM経由によるサーバー起動、最低でもこの3つで自動修復が行われます。

    現象そのものは、何らかの理由により自動修復が行われてしまっているという状況です。

    解決策は、「ユーザーが切り替わると自動修復が行われないようにインストーラを作る。」です。

    何が原因かはインストーラの内容を見ないとわかりませんので、具体的なアドバイスはできません。

    パッと思いつくところでは、レジストリの HKEY_CURRENT_USER に書き込みする、ユーザーフォルダ(AppDataFolderや、LocalAppDataFolderなど)に書き込みする。

    など、ユーザー固有の場所へインストールするなどが考えられます。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/

    • 回答としてマーク taki_036 2012年11月6日 3:40
    2012年11月6日 2:45

すべての返信

  • アドバタイズショートカット、関連付け、COM経由によるサーバー起動、最低でもこの3つで自動修復が行われます。

    現象そのものは、何らかの理由により自動修復が行われてしまっているという状況です。

    解決策は、「ユーザーが切り替わると自動修復が行われないようにインストーラを作る。」です。

    何が原因かはインストーラの内容を見ないとわかりませんので、具体的なアドバイスはできません。

    パッと思いつくところでは、レジストリの HKEY_CURRENT_USER に書き込みする、ユーザーフォルダ(AppDataFolderや、LocalAppDataFolderなど)に書き込みする。

    など、ユーザー固有の場所へインストールするなどが考えられます。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/

    • 回答としてマーク taki_036 2012年11月6日 3:40
    2012年11月6日 2:45
  • パッと思いつくところでは、レジストリの HKEY_CURRENT_USER に書き込みする、ユーザーフォルダ(AppDataFolderや、LocalAppDataFolderなど)に書き込みする。

    など、ユーザー固有の場所へインストールするなどが考えられます。

    アドバイスありがとうございます。

    いただいたアドバイス通り、ユーザフォルダ関連を見直したところ、書き込みを行っていました。ユーザフォルダに書き込みを行わないよう、インストーラを作り直したところ、現象が回避できました。

    #ユーザフォルダへの書き込みは実験的に試したものが残ってただけなので、単純に削除できました。

    無事、解決できたので回答としてマークさせていただきます。ありがとうございました。

    2012年11月6日 3:45