web-dev-qa-db-ja.com

インストールされたMSIファイルのアップグレードコードを見つけるにはどうすればよいですか?

特定の場合展開されたパッケージのMSIアップグレードコードを取得する必要があるが発生する可能性があります。

一般的なシナリオ:

  • 他の誰かのMSIプロジェクトを引き継いだので、すでに稼働している以前のバージョンでどのアップグレードコードが使用されたかを判断する必要があります。これは、アップグレードシナリオを処理するために必要です。 リリースのアーカイブはどこにもありません
  • 開発中にWiXパッケージのアップグレードコードを誤って何度か変更したため、すべてのアップグレードコードバージョンを「インザワイルド」で見つける必要があります。 バージョン間でアップグレードコードが安定していることを認識していませんでした

これはQ/Aスタイルの質問です。

この質問はさまざまな形で以前に出てきましたが、これは重複ではありませんです。 メインMSIオートメーションインターフェイス(または厳密に言えばWMI)を使用する方法を投稿しています。それは、以前の回答からのレジストリベースのアプローチよりも信頼性が高いはずですです。この回答は、他の検索アプローチを要約しようとしています。

12
Stein Åsmul

WMIを直接使用するための要件を満たすために、またはPowershellなしで1回限りが必要な場合(または.batなどを使用する必要がある場合)は、wmicを使用します。

C:\WINDOWS\system32>wmic product list brief
Caption                                                                                              IdentifyingNumber                       Name                                                                                                 Vendor                          Version
    Sourcetree                                                                                           {1B05DFFD-1DB9-48CD-9265-F3976512A579}  Sourcetree                                                                                           Atlassian                       2.6.10.0
    Microsoft Office Access database engine 2007 (English)                                               {90120000-00D1-0409-0000-0000000FF1CE}  Microsoft Office Access database engine 2007 (English)                                               Microsoft Corporation           12.0.4518.1031
    Office 16 Click-to-Run Extensibility Component                                                       {90160000-008C-0000-0000-0000000FF1CE}  Office 16 Click-to-Run Extensibility Component    

複数のフォーマットおよび出力オプションがあります。

0
Orangutech