0

InstallAwareを使用してビルドを作成し、Web更新をサポートしています。インストールプロセスでは、初めてユーザーがインストール先フォルダーを選択できるようになります。システムはデフォルト値も提供します。

ユーザーがデフォルトのフォルダーではなくカスタムフォルダーを選択するまで、すべてが正常に機能しています。更新モードでは、セットアップにより、ユーザーが選択したディレクトリではなく、デフォルトのターゲットディレクトリにアプリケーションがインストールされます。InstallAwareのドキュメントとして、更新モードでは最初にアプリケーションがアンインストールされてから、再度インストールされます。サイレントモードで更新を実行するため、インストーラーはデフォルト値を取得します。

元の宛先にインストールするにはどうすればよいですか?

4

3 に答える 3

4

幸い、InstallAwareは、この機能を実現するための非常に簡単な方法をデフォルトで実装しています。

「LOADOLDDATA」InstallAware定義済みコンパイラ変数を設定して、さまざまなインストールパラメータを追跡できます。

TRUEに設定すると、セットアップエンジンは、古いバージョンのセットアップから機能定義およびその他の保存されたデータをロードします(IAドキュメントの詳細については、Load Feature Selectionsコマンドも参照してください)。通常、このデータは、メンテナンスまたはアンインストール操作のために同じインストール済みアプリケーションバージョンで作業している場合、同じバージョンのセットアップの間にのみロードされます。このコンパイラー変数の他の値を使用すると、この通常の動作が保持されます。

または、セットアップの異なるバージョン間でパラメーターの状態を移行する場合は、スクリプトコードで[機能の選択を保存]と[機能の選択を読み込む]を使用できます。

これがお役に立てば幸いです。

于 2012-11-23T12:34:35.857 に答える
1

今後のプロジェクトで、InstallAware の Web アップデートを利用しようとしています。私の実現可能性調査の一部には、バージョン 7.0 からではあるが、このホワイト ペーパーが含まれていました

あなたの質問にとって最も重要なことは、14ページに次のように記載されていることです。


更新クライアントの場所の特定

All Users インストールの場合は、次のレジストリ キーを参照してください: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

Just Me インストールの場合は、次のレジストリ キーを参照してください: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

どちらの場合も、UninstallString 文字列値のデータを読み取ります。この文字列の一般的な値は次のとおりです: "C:\Documents and Settings\\Application Data\\.exe" REMOVE=TRUE MODIFY=FALSE アプリケーションでこの文字列を解析して、コマンド ライン パラメータを削除します REMOVE=TRUE MODIFY=FALSE も同様に削除しますメイン文字列を囲む二重引用符として。更新クライアント (およびセットアップ プログラム) の場所を示す最後の文字列は、C:\Documents and Settings\\Application Data\\.exe の形式である必要があります。


そのキー値を読み取り、その値を MSI コードの $TARGETDIR$ (名前だと思います) 変数に割り当てる必要があります。

それが役立つことを願っています。また、パッチに関するホワイト ペーパーも参照してください。これにより、完全なインストーラーのダウンロードが回避され、ファイル デルタのみを含むパッチが完全なアンインストールが妨げられます。

于 2012-03-02T08:03:47.353 に答える
0

ほとんどのセットアップ オーサリング ツールには、元のインストール パスを取得し、アップグレード中にそれを使用するメカニズムが含まれています。InstallAware にはそれがないと思うので、自分で作成する必要があります。

  • 古いインストール パスを見つけるカスタム アクションを作成する
  • このカスタム アクションは、インストール フォルダーのプロパティをその古いパスに設定する必要があります。
  • カスタム アクションは、CostFinalizeアクションの前に実行する必要があります

インストーラーのプロパティを設定できるのは、 win32 DLL、VBScript、および WiX Toolset カスタム アクションのみであることに注意してください。

于 2012-01-04T08:25:03.070 に答える