0

インストールに問題があります。インストールでは、コマンドラインオプションを実行して、/codebaseオプションを指定して.netcomdllをregasm.exeします。

Setup.exeからインストール(installshieldによってビルドされた)を実行すると、すべてが正常に機能します。

代わりに.msiからインストールを実行すると、regasm呼び出しが成功せず、何も登録されず、プログラムが実行されません。

この問題はx64ベースのシステムにのみ影響するようで、x86システムではどちらの方法でも機能します。

問題が何であるかについて何か考えはありますか?

編集

問題は、管理者としてログインしても、msiが管理者として実行されないことのようです。まだUACダイアログが表示されますが、ウィザードの途中です。setup.exeから起動すると、ウィザードが表示される前にUACパネルが表示されます。から.msiを実行し、管理コマンドプロンプトを実行すると、UACパネルが表示されず、すべてが期待どおりに機能します。

それで、すべてが期待どおりに機能していると思いますか?そして、カスタムインストールアクションを正しく機能させるには、msiを管理者権限で実行する必要がありますか?

4

1 に答える 1

1

このブログ投稿では、インストーラーのコンテキストから管理者権限で実行可能ファイルを実行する必要性について説明しています。問題の実行可能ファイルは異なります(appcmd.exeregasm.exeあなたの場合とは異なります)が、問題は似ています。

私があなたに関連していると思うその投稿の部分はこれです:

デフォルトでは、カスタム アクションは、インストーラー自体が実行される管理者の昇格なしで、インストールを開始したユーザーになりすますことが判明しました。これは、CustomAction の Impersonate 属性を「no」に設定することで変更できます。また、Execute=”deferred” を追加する必要があり、その結果、InstallFinalize の後ではなく、InstallFinalize の前にカスタム アクションを実行する必要がありました。

私は InstallShield に詳しくありませんが、実行するカスタム アクションをマークする方法があるかどうかを確認してくださいregasm.exe。次のいずれかに似た表現の設定可能なオプションを探します (これらはすべて同じことを別の言い方で表しています)。

  • msidbCustomActionTypeNoImpersonateビットをセット
  • 「システム コンテキストでの遅延実行」のカスタム アクションを設定する
  • 「偽装なしの遅延実行」のカスタム アクションを設定します。
于 2011-03-17T02:58:36.950 に答える