4

自動更新を実装しているアプリケーションがあります。プログラムがチェックするWebサービスがあり、アップグレードが必要な場合は、新しいインストーラー(Visual Studio 2005セットアッププロジェクト)をダウンロードして実行します。その後、プログラムが再起動します。すべてうまくいっています。

しかし、インストーラーのインストールパスが、ユーザーが最初にプログラムをインストールしたのと同じパスにデフォルト設定されていることを確認するにはどうすればよいですか?

たとえば、ユーザーがプログラムファイルからC:\ SomeFolderに変更した場合、インストーラーにそれを検出させ、インストールパスをプログラムファイルではなくC:\ SomeFolderに変更するにはどうすればよいですか?または、ユーザーが「すべてのユーザー」ではなく「現在のユーザー」にインストールすることを選択した場合はどうなりますか?

4

1 に答える 1

13

-Setup Project を右クリック
-View
-Registry
-左側で HKey_Local_Machine と Software を展開し、Manufacturer ノードをクリックします
-右側で右クリックして String レジストリ キーを追加します -
レジストリ キーに InstallDirという名前を付けます
-その値を設定します [TARGETDIR]

ここに画像の説明を入力

プログラムがインストールされると、InstallDir regkey にその場所が含まれていることがわかります。アップデータ アプリケーションは、この同じパスを使用できます。

ここに画像の説明を入力

一般に、"Just Me" と "Everyone" の唯一の違いは、作成されるショートカットの場所です。インストール中に Process Monitor を実行して、自分の目で確かめることができます。

編集:

アップデータ アプリケーションは、次の手順で InstallDir RegistryKey を使用できます。参照:方法: レジストリ起動条件を使用してターゲット ディレクトリを指定する

- アップデーターのセットアップ プロジェクトを右クリック- 表示 - 起動条件- RegistryKey の検索を追加 - プロパティを SEARCHFORINSTALLDIR として指定
- RegKey を SOFTWARE\ManufacturerName として指定 - root は HKLM を指すまま - 値を InstallDir として指定





ここに画像の説明を入力

-起動条件
を追加 -条件を SEARCHFORINSTALLDIR として指定
-InstallUrl とメッセージを残す

ここに画像の説明を入力

-セットアップ プロジェクトを右クリックします-表示 - ファイル システム -アプリケーション フォルダを選択します
-F4キーを押し て、アプリケーション フォルダのプロパティを表示します -DefaultLocation を [SEARCHFORINSTALLDIR] として指定します



ここに画像の説明を入力

アップデーターのセットアップ パッケージをビルドして実行すると、InstallDir regkey にインストール パスの値が表示されます。

[フォルダ テキスト ボックス] と [参照] ボタンを無効にして、ユーザーがアップデータのインストール パスを変更できないようにする場合は、Orca.exeを使用できます。Orca は、Windows インストーラー パッケージとマージ モジュールを作成および編集するためのデータベース テーブル エディターです。次に、このセットアップ プロジェクトに従って、インストールされたキットの場所を修正します。


これを行う別の方法は、Aaron Stebner のHow to modify the default install path in an MSI-based setup based on a registry value に従うことです。

于 2012-07-15T06:42:45.523 に答える