2

我有一个开源 VSPackage,我想发布它以支持 Visual Studio 2005、Visual Studio 2008 和 Visual Studio 2010。我试图弄清楚如何创建安装程序以及如何执行每个版本的包注册的 Visual Studio。

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

我所做的注册研究不太清楚。每个版本的 VSPackage 注册似乎都不同(VS2005 使用 regpkg,VS2008 使用 pkgdef,VS2010 使用 VSIX)。

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

任何帮助将不胜感激!

4

1 回答 1

4

简短回答:如果您想要一个针对/注册 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 文件。

于 2010-05-10T16:57:22.130 回答