代码之家  ›  专栏  ›  技术社区  ›  Steve Cadwallader

如何部署和注册支持多个版本的Visual Studio的vPackage(2005、2008、2010)?

  •  2
  • Steve Cadwallader  · 技术社区  · 14 年前

    我有一个开放源代码vPackage,我希望通过对Visual Studio 2005、Visual Studio 2008和Visual Studio 2010的支持来发布它。我正在努力研究如何创建安装程序,以及如何在每个版本的Visual Studio中执行包注册。

    我所做的部署研究表明,我对安装程序的最佳选择是在MSI中使用VSIX。

    我做的注册调查不太清楚。每个版本的vPackage注册似乎都不同(vs2005使用regpkg,vs2008使用pkgdef,vs2010使用vsix)。

    是否有人可以分享他们的经验和/或向我介绍针对多个版本的Visual Studio的最佳方法的任何信息?我正在寻找最简单的实现,如果合理可行,最好将它保存在单个安装程序中。

    任何帮助都将不胜感激!

    1 回复  |  直到 14 年前
        1
  •  4
  •   Aaron Marten    14 年前

    简短回答 :如果您想要一个以2005、2008和2010为目标/注册的安装程序,那么实际上选择非常简单。您应该创建一个基于msi的安装程序并注册到hklm\software\microsoft\VisualStudio\(8.0_9.0_10.0)。

    解释 :对于msi/vsix问题…请记住,vsix是2010年的新产品。带有VS2005/2008的机器不知道如何处理VSIX文件。

    关于vsix的旁注……您不应该将vsix文件(即zip容器)放在msi中。如果希望扩展名管理器对话框中也出现基于MSI的扩展名,则应在extension.vsixmanifest文件中包含一个<installedByMSI>标记,并将 文件已展开 在<visualstudio2010installdir>\common7\ide\extensions\<yourextensiondirectory>下。

    就注册而言……你的问题有一些不正确的地方。对于2005年和2008年,在Visual Studio中注册软件包的安装程序应始终在HKEY U local U machine下注册。(2008年的pkgdef 只有 对于基于“独立shell”的应用程序。)现在支持放置pkgdef文件。 除了 Visual Studio 2010中的注册表。

    regpkg是包含在Visual Studio SDK for 2005/2008/2010中的一个实用程序,它反映包程序集,并以几种不同格式输出相应的注册信息。它用于在开发/构建时生成注册信息,不应作为安装程序的一部分使用。

    createpkgdef.exe是2010年的一个工具,与regpkg.exe基本相同,但它 只有 输出pkgdef文件。