簡単な回答:2005、2008、および2010を対象とする/登録する単一のインストーラーが必要な場合、選択は実際には非常に簡単です。MSIベースのインストーラーを作成し、HKLM \ Software \ Microsoft \ VisualStudio \(8.0 | 9.0 | 10.0)に登録する必要があります。
説明:MSI / VSIXの質問については、VSIXは2010年の新機能であることを忘れないでください。VS2005/ 2008を搭載したマシンは、VSIXファイルをどう処理するかを認識しません。
VSIXに関する補足事項....MSI内にVSIXファイル(つまり、zipコンテナー)を配置しないでください。[拡張機能マネージャー]ダイアログにも表示されるMSIベースの拡張機能が必要な場合は、extension.vsixmanifestファイルに<InstalledByMSI>タグを含め、<VisualStudio2010InstallDir> \ Common7 \ IDE \Extensions\の下に既に展開されているファイルを配置する必要があります。 <YourExtensionDirectory>。
登録に関しては...質問に間違っていることがいくつかあります。2005年と2008年の両方で、Visual Studioにパッケージを登録するインストーラーは、常にHKEY_LOCAL_MACHINEで登録する必要があります。(2008年のPKgdefは、「分離シェル」ベースのアプリケーション専用でした。) Visual Studio 2010のレジストリに加えて、pkgdefファイルの配置がサポートされるようになりました。
RegPkgは、Visual Studio SDK for 2005/2008/2010に含まれているユーティリティであり、パッケージアセンブリに反映され、適切な登録情報をいくつかの異なる形式で出力します。これは、開発/ビルド時に登録情報を生成するために使用することを目的としており、インストーラーの一部として使用しないでください。
CreatePkgDef.exeは、基本的にRegPkg.exeと同じ2010年のツールですが、pkgdefファイルのみを出力します。