none
アンインストーラによる実行環境は異なる? RRS feed

  • 質問

  • お世話になっております。

    現在、インストーラを作成しております。

    Setupは正常に作動し、Windows上でもインストールアプリとして
    認識されています。

    問題はアンインストーラで
    Windows10上の【アプリと機能】よりアンインストールを実行したとき
    異常が発生します。
    異常の原因は、起動時に設定ファイルが読込めてないことにより発生しています。

    アンインストーラの実行トリガは、【Microsoft\Windows\CurrentVersion\Uninstall】
    のアプリ¥UninstallString からキックされると認識しております。

    実際に、同Pathよりアンインストーラが起動されている事はタスクマネージャより
    確認しております。

    タスクマネージャより、ファイルの場所を開き、アンインストーラをダブルクリックにより
    手動実行すると正常に動作します。

    手動では正常に動作するのに、システムより起動された状態では、なぜ設定ファイルを
    読まずにエラーが発生しているのでしょうか?
    この起動は何か特別が起動が行われているのでしょうか?

    識者のかた、どうかご教示ください。

    追記:

    設定ファイルを読み込めていない為に異常が発生していると確認した方法

    設定ファイルを読めていない為、プロジェクト名称が””になっている。

    2019年6月24日 7:17

回答

  • CurrentDirectory はプログラムの実行方法などによって変わるので、プログラムのフォルダーと同じという前提は置いてはいけません。
    たとえば、コマンドプロンプトで C:\Windows がカレントディレクトリの状態で exe をフルパスで実行すると、C:\Windows が CurrentDirectory になりますし、ショートカットからの起動でも作業フォルダーを指定しているとそれが CurrentDirectory になります。

    ImmersiveControlPanel はコントロールパネルのフォルダーってことでしょう。

    あとは以下のページも参考に考えてみてはいかがでしょうか。
    https://tekk.hatenadiary.org/entry/20110222/1298371975

    • 回答としてマーク コーベル 2019年6月25日 1:20
    2019年6月24日 21:08
    モデレータ

すべての返信

  • アンインストーラの実行異常時に、プログラムにアタッチして内容を確認しました。

    Environment.CurrentDirectory が C:\Windows\ImmersiveControlPanel
    として出力されているため、設定ファイルが見つからないようです。

    C:\Windows\ImmersiveControlPanel とは一体何者なのでしょうか?

    2019年6月24日 8:00
  • CurrentDirectory はプログラムの実行方法などによって変わるので、プログラムのフォルダーと同じという前提は置いてはいけません。
    たとえば、コマンドプロンプトで C:\Windows がカレントディレクトリの状態で exe をフルパスで実行すると、C:\Windows が CurrentDirectory になりますし、ショートカットからの起動でも作業フォルダーを指定しているとそれが CurrentDirectory になります。

    ImmersiveControlPanel はコントロールパネルのフォルダーってことでしょう。

    あとは以下のページも参考に考えてみてはいかがでしょうか。
    https://tekk.hatenadiary.org/entry/20110222/1298371975

    • 回答としてマーク コーベル 2019年6月25日 1:20
    2019年6月24日 21:08
    モデレータ
  • Azuleanさん、ご回答ありがとうございます。

    カレントディレクトリを取得していたのが、ぞもぞもの間違いですね
    ありがとうございました、勉強させて頂きました!

    2019年6月25日 1:20