9

私はデスクトップ アプリケーションの展開にかなり慣れていないため、ソフトウェアのインストーラーを作成するのはこれが初めてです。現在、ソフトウェアをインストールした後に初めて実行すると、クラッシュします。その後、問題なく動作しています。この問題はまだデバッグ中ですが、インストール後すぐにソフトウェアを実行する前に再起動すると、このクラッシュが修正されるようです。

一部のインストーラーがソフトウェアを実行する前に再起動を要求する一般的な理由は何ですか?

また、一部のインストーラーは、インストールを完了する前に再起動する必要があるのはなぜですか?

前もって感謝します!

4

3 に答える 3

8

通常、インストールと実行の間に再起動が発生するのは、ロックされているシステム DLL を置き換えるためです。インストーラーは、起動時に Windows によってロックされる前に DLL をコピーする一度だけのレジストリ エントリをセットアップします。その後、アプリケーションは、作成した新しい DLL を使用できます。

一般に、これは非常にお勧めできません。インストール後に Windows 以外のユーザーが再起動する必要はもうありません。

デバッガーに戻って、アプリケーションがクラッシュする理由の詳細を確認することをお勧めします。うまくいけば、そのタイプのデバッグを可能にするために、コードで十分なトレースを利用できるようになります。

于 2008-10-26T02:45:19.633 に答える
1

一般に、再起動は、OS によって現在使用されている (およびロックされている) ファイルをインストーラーが置き換える必要がある場合にのみ必要です。場合によっては、インストーラーが再起動の側でエラーになることがありますが、これは以前よりもまれです。

于 2008-10-26T02:44:35.580 に答える
0

私が維持しているインストーラーのケースでは、UACと特権の昇格のみが原因でビスタの再起動を強制する必要があります。セットアップが完了したら、昇格されたVistaコンテキストではなく、現在のユーザーコンテキストとしてプログラムをトリガーする必要があります。

あなたの場合、いくつかのファイルが正しく登録されていないのではないかと思います。デバッグを続ける必要があります;)

于 2008-10-27T02:05:32.973 に答える