Innoセットアップを使用してアプリケーションインストーラを構築しています。Innoセットアップ:アプリケーションの自動起動時にレジストリ設定が更新されない
インストール中に、複数の異なるアプリケーション(または同じアプリケーションの複数のバージョン)で使用される共通ファイル(DLLなど)を保存するPATHを提供するレジストリキーを追加します。
私はこの記事で提案された方法を使用しています:http://www.codeguru.com/cpp/w-p/dll/article.php/c99/Application-Specific-Paths-for-DLL-Loading.htm
私が持っている問題は、インストールが完了すると、ユーザがアプリケーションを自動実行できるということです。この例では、アプリケーションはPATHの場所にdllを見つけることができません。アプリケーションを閉じてエクスプローラから再起動すると、うまく動作します。
ファイルを標準の共有dllの場所に配置したくない場合、それらはすべてdllではなく、私のアプリケーションが使用しているdllのバージョンをより適切に制御したいと考えています。また、ファイルをアプリケーションインストールの.exeディレクトリに置くこともオプションではありません。私はまた、システム環境のパスにPATHを追加したくないのです(たとえ私が行ったとしても、おそらく同じ問題があると思われます)
アイデアはありますか?
RTFMのケースだと思います!! http://www.jrsoftware.org/ishelp/index.php?topic=registrysection 私は[実行]セクションでshellexecコマンドを使用しましたが、問題を解決するようです。 –
これのプロトコルは何ですか?質問を削除しますか?私はそれが私のような他の愚か者には役に立つかもしれないと考えます。少なくとも、アプリケーション固有のパスについてのヒントは実際には非常に有用であり、広範に参照されているとは思われません。 –
私は間違ったリンクを投稿しました:http://www.jrsoftware.org/ishelp/index.php?topic=runsection "shellexec"フラグは、ユーザーをダブルクリックした場合と同じ方法でプログラムを実行しますエクスプローラのファイルです言い換えれば、インストーラプロセスの子ではなく、新しいプロセスを開始するので、環境の変化を認識します。これは、あなたが答えに書いたものに忠実であると思います。 –