0

installshield 2009 でいくつかのメッセージをユーザーに設定して、次の場合にプロンプ​​トを表示する方法はありますか?

  1. セットアップの名前を変更するか、ファイル名を変更しますか?
  2. セットアップはネットワークの場所から実行されていますか?
  3. UAC 機能がオンになっている場合

どんな提案でも大歓迎です。

ありがとう、ヴィディア

4

1 に答える 1

0

Windows インストーラーは、1 と 2 を検出するためのプロパティを提供します。

  1. OriginalDatabaseプロパティは、.msi ファイルへのパスを保持します。
    注をよくお読みください。Windows インストーラーは、パッケージをキャッシュするときにパッケージの名前を変更します。したがって、インストールはそれに対処する必要があります。
  2. SourceDirプロパティは、インストール パッケージを含むディレクトリを保持します。プロパティを使用する前に、アクション
    をスケジュールする必要があります。また、アンインストール中などにアクションをスケジュールしないように注意する必要があります。ResolveSourceResolveSource
  3. 私の知る限り、Windows インストーラーは、UAC が有効かどうかの直接検出をサポートしていません。

ブートスタッパーの名前が変更されたのか、ネットワークから実行されたのかを検出したい場合はsetup.exe、別の話であり、私はそれについてはお手伝いできません。


これら 2 つのケースを検出する必要がある理由を明確にしてください。

  1. セットアップの命名方法によって違いが生じるのはなぜですか?
    ユーザーがセットアップ ファイルの名前を変更することはあまりないと思います。また、インストーラー パッケージが 1 つのファイルにのみ含まれている場合、名前の変更が悪い理由がわかりません。

    Vidya:確かではありませんが、セットアップの名前を変更しようとすると、コンパイルに関連するメッセージが表示され、セットアップでセットアップの名前を変更できないとユーザーが言っていました。

  2. ネットワーク上の場所からセットアップを実行すると、何が変わりますか?
    Windows インストーラー パッケージは、ネットワーク上の場所からインストールできます。管理者用インストールの場合、ネットワーク上の場所からインストールを実行することも一般的なシナリオです。

    Vidya:問題は、ネットワーク上の場所から MSI をインストールし、インストールされたセットアップで更新を実行しようとすると、「ファイルが見つかりません」と表示されることです。</p>

  3. UAC がオンまたはオフであることがわかっている場合、セットアップで何をしますか?
    Windows インストーラーは、それ自体で UAC を適切に処理します。気にしなければならないのは、作成するカスタム アクションだけです。それらは UAC に対応している必要があります。この点をまとめると、要件は 1 つだけです。遅延アクションのみがシステムの変更を実行する必要があり、遅延アクションはシステム コンテキストで実行されます。その他のカスタム アクションは、現在ログインしているユーザーのコンテキストで実行されます。この要件は、UAC がない Windows XP にも当てはまります。延期されていないアクションでシステム設定を変更するのは悪い習慣です。

    Vidya:基本的には、UAC がオンになっていて、そのユーザーに管理者権限がない場合にユーザーにメッセージを表示したり、セットアップを実行する前に UAC を最低に設定するように通知したりしたかったのです。

于 2012-06-30T17:47:01.030 に答える