0

Microsoft.Deployment.WindowsInstallerまたはMicrosoft.Deployment.WindowsInstaller.Package dll を使用して、MSI パッケージに含まれるファイルのハッシュサムをプログラム (C#) で取得することはできますか?

この方法を使用してファイルを取得しています: C# で MSI パスを解決するにはどうすればよいですか?

ファイルを FS に抽出するのではなく、C# コードを使用してファイルのハッシュサムを取得したいと考えています。

出来ますか?

4

1 に答える 1

3

Windows インストーラーには、MsiFileHash テーブルが含まれています。ビルド時に、ファイル テーブル内のすべてのファイルの 128 ビット ハッシュが取り込まれます。InstallPackage Files プロパティは、InstallPathMap オブジェクトのディクショナリを返します。このコレクションのキーには File テーブルの File キーがあり、これを使用して MsiFileHash をクエリしてハッシュを取得できます。

この格納されたハッシュと比較するために、インストールされたファイルのハッシュを計算する必要がある場合、Microsoft.Deployment.WindowsInstaller にあるインストーラー クラスには、基になるMsiGetFileHash 関数をクラス化する GetFileHash メソッドがあります。

于 2013-07-17T19:01:53.410 に答える