简短回答:如果您想要一个针对/注册 2005、2008 和 2010 的安装程序,那么选择实际上非常简单。您应该创建一个基于 MSI 的安装程序并注册到 HKLM\Software\Microsoft\VisualStudio\(8.0|9.0|10.0)。
解释:对于 MSI/VSIX 问题...请记住 VSIX 是 2010 年的新产品。具有 VS 2005/2008 的机器不知道如何处理 VSIX 文件。
关于 VSIX 的附注......您永远不应该将 VSIX 文件(即 zip 容器)放在 MSI 中。如果您想要一个也出现在 Extension Manager 对话框中的基于 MSI 的扩展,您应该在您的 extension.vsixmanifest 文件中包含一个 <InstalledByMSI> 标记,并放置已在 <VisualStudio2010InstallDir>\Common7\IDE\Extensions\ 下展开的文件<您的扩展目录>。
就注册而言……您的问题中有一些不正确的地方。对于 2005 和 2008,使用 Visual Studio 注册包的安装程序应始终在 HKEY_LOCAL_MACHINE 下注册。(2008 年的 PKgdef仅适用于基于“Isolated Shell”的应用程序。)除了Visual Studio 2010 中的注册表之外,现在还支持放置 pkgdef 文件的选项。
RegPkg 是 Visual Studio SDK for 2005/2008/2010 中包含的实用程序,它反映您的包程序集并以多种不同格式输出适当的注册信息。它旨在用于在开发/构建时生成您的注册信息,不应用作安装程序的一部分。
CreatePkgDef.exe 是 2010 年的一个工具,与 RegPkg.exe 基本相同,但它只输出 pkgdef 文件。