1

大規模なインストーラー プログラムの一部としてコンポーネントをインストールするために自己登録が使用されると仮定すると、なぜ自己登録が悪いのでしょうか? たとえば、vb カスタム コントロールや capicom などを自己登録します。自分で作成した dll の場合、自己登録はおそらく安全ではないことは承知していますが、それらについては議論していません。

MSDN には、自己登録が良くない理由がいくつか挙げられています。

  • ロールバックが正しく機能しません。
    OK、この理由は理にかなっています。

  • 広告もうまくいきません。
    広告は特定の種類のソフトウェア クライアントにとってのみ重要であるという事実を無視すると、なぜこれが問題になるのか理解できません。コンポーネントではなく、メイン アプリケーションのみを宣伝する必要があります。

  • 自己登録は、ユーザーごとのキーを適切にサポートしません。
    だから何?すべてのユーザーに「共通」コンポーネントへのアクセスを許可することは、マシンに多数のユーザーがいる場合を除き、悪いことではありません。

  • 自己登録は、コーディング エラーの影響を受けやすくなります。
    Microsoft によって作成された dll の場合を除いて、私は間違いなくこれを信じることができます (エラーがある可能性がありますが、それらを信頼することが不合理だとは思いません)。また、ソフトウェアによって生成された tlb と ocx の場合、コーディング エラーはほとんどありません。

  • 自己登録 dll は、他の dll にリンクする場合があります。
    プログラムによって生成された dll の場合、これが原因で自己登録が失敗する可能性は低いと思われますが、登録キーを手動で追加するとうまくいきます。自己登録で、dll が見つからないというエラーが返されるようにしたいと考えています。

    私はこれが炎を描くと確信しています:/

    編集:実際に重要だと思う議論を取り消しました(ユーザーの応答と私自身に基づいて)。

  • 4

    3 に答える 3

    1

    このアイテムに関する限り:

    • 自己登録は、ユーザーごとのキーを適切にサポートしません。

      だから何?すべてのユーザーに「一般的な」コンポーネントへのアクセスを許可することは、マシンに多数のユーザーがいる場合を除き、悪いことではありません。

    マシンに何人のユーザーがいるかだけでなく、彼らが持っている権限も問題です。HKEY_LOCAL_MACHINE管理者でない場合、ユーザーはレジストリの一部を更新する権限を持っていない可能性があります。

    于 2009-01-14T17:10:39.723 に答える
    0

    アイテム

    自己登録 dll は他の dll にリンクする場合があります

    dll を登録しようとしたときに適用されますが、インストーラーは、登録機能に必要な別の dll をまだコピー/インストールしていません。

    于 2009-01-14T17:35:56.833 に答える
    0

    私が遭遇した可能性のある「落とし穴」を1つ追加します(MS COMオブジェクトの自動生成された自己登録コードを使用):

    自己登録は、実行可能ファイルを実行し、それに伴う/必要なすべてのものを実行します。したがって、たとえば、コンポーネントがアクティブ化されたという事実を直接的または間接的にログに記録する場合 (おそらく、コンポーネントが非常に特定のポイントまたは非常に特定のコンテキストでのみ実行されるか、または他のアプリケーションと連携して実行されることになっている場合のセキュリティ ログ)、登録はアクティベーションのように見えます (ログに注意しない限り)。これは、コンポーネントが使用されたコンテキストなどをログに記録する場合にも興味深い可能性があります。この場合、継承されたコンテキストが自己登録をトリガーしたことになります。

    ほとんどの場合、大したことではありませんが、微妙な混乱を招くことがあります。おそらく好ましくない理由のリストに追加します。

    于 2009-01-14T17:51:18.503 に答える