セットアップファイルを実行するアプリケーションを作成し、セットアップの完了後に自動的にパッチを適用します。
このレジストリキーHLKM\SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstallを使用していますが、一部のアプリケーションにはこのキーがありません。
インストールディレクトリを見つけるにはどうすればよいですか?
セットアップファイルを実行するアプリケーションを作成し、セットアップの完了後に自動的にパッチを適用します。
このレジストリキーHLKM\SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstallを使用していますが、一部のアプリケーションにはこのキーがありません。
インストールディレクトリを見つけるにはどうすればよいですか?
system
とapplication
クラスを使用できます。
Application.ExecutablePath
たとえば、次のように実行可能ファイルを含むディレクトリのフルネームを取得できます。
string executableName = Application.ExecutablePath;
FileInfo executableFileInfo = new FileInfo(executableName);
string executableDirectoryName = executableFileInfo.DirectoryName;
インストーラーとしてVSセットアッププロジェクトを使用している場合は、セットアップ環境に関する情報を取得する1つの方法としてカスタムアクションを利用できます。
そうは言っても、私はあなたの目標を達成するためのより良い方法があるかもしれないと感じています、そしてより多くの情報で私たちはあなたがそこに到達するのを助けることができると思います。
編集
私は今あなたをフォローしていると思います。これを行う場合は、最初に、パッケージ化する各サードパーティアプリのデフォルトのセットアップ場所をハードコーディングします。ユーザーがデフォルトを変更しても見つからないため、新しいパスの入力を求めます。C:\を想定する代わりに、 Environment.SpecialFolderを使用してプログラムファイル(または他のシステムフォルダー)の実際の場所を取得できることを忘れないでください。インストールとユーザーのおそらく99.9%の場合、この方法は追加のユーザー操作なしで完了します。
もう1つのオプションは、反対のサードパーティバイナリ用に独自のインストーラーを作成することです。もちろん、アップデートも維持する必要がありますが、パッチですでにそのようなことをしているようです。