0

自己登録 DLL ( 経由で登録CESelfRegistered) を使用するアプリケーションを更新する必要があります。登録中に、DLL は、将来使用するいくつかのパスをレジストリに書き込みます。

ここでの問題は、新しい DLL に保存されているパスが異なることです。また、DLL はデバイス メモリでアクティブであるため、更新プロセス中に、登録中に OLD DLL ファイルが呼び出されます。したがって、更新が完了してデバイスが再起動された後でも、新しい DLL は古い設定を読み取ります。

この種の動作を回避するための正しい手順は何でしょうか?

4

1 に答える 1

1

DLL を使用する実行中のアプリを更新するには、実行中の exe を強制終了または終了するインストーラーを作成し、DLL を含む exe をアンインストールしてから、新しい exe と dll をインストールする必要があります。

たとえば、exe を停止/強制終了し、install_init 内で DLL を登録解除する cab ファイル setup.dll を作成できます。場合によっては、古いレジストリ エントリを削除するコードを追加します。CE セットアップ DLL は、CAB インストール中のインストールおよびアンインストールの開始前後にコードを実行するオプションです。

これらの exe と dll の置き換えを実行するコードをアプリケーション内に記述して、exe の強制終了などを行うこともできます。次に、このアップデータ exe を起動プロセスに含めて、一度実行します。

アプリがまだインストールされていない場合、ce_setup.dll 内からアプリを起動することに依存することはできません。

ce_setup.dll の説明については、 http: //msdn.microsoft.com/en-us/library/aa924308.aspxを参照してください。

于 2013-05-08T03:53:00.213 に答える