我有一个开源VSPackage,我想发布它支持Visual Studio 2005,Visual Studio 2008和Visual Studio 2010.我正在试图弄清楚如何创建安装程序以及如何执行包注册每个版本的Visual Studio。
我所做的部署研究表明,我最好的选择是安装程序是MSI中的VSIX。
我所做的注册研究不太清楚。每个版本的VSPackage注册似乎都不同(VS2005使用regpkg,VS2008使用pkgdef,VS2010使用VSIX)。
任何人都可以分享他们的经验和/或指出我有关针对多个版本的Visual Studio的最佳方法的任何信息吗?我正在寻找最简单的实现,并且如果合理可行,最好将其保存在单个安装程序中。
非常感谢任何帮助!
答案 0 :(得分: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中。如果您希望基于MSI的扩展也出现在Extension Manager对话框中,则应包含< InstalledByMSI>在extension.vsixmanifest文件中标记,并在< VisualStudio2010InstallDir> \ Common7 \ IDE \ Extensions \< YourExtensionDirectory>下放置已扩展的文件。
就注册而言......你的问题中有一些不正确之处。对于2005和2008,使用Visual Studio注册包的安装程序应始终在HKEY_LOCAL_MACHINE下注册。 (2008年的PKgdef只是基于“隔离外壳”应用程序的 。)现在,除了 Visual Studio 2010中的注册表之外,现在还可以选择来支持pkgdef文件。< / p>
RegPkg是Visual Studio SDK for 2005/2008/2010中包含的实用程序,它反映了程序包程序集并以多种不同格式输出相应的注册信息。它旨在用于开发/构建时生成您的注册信息,不应该用作安装程序的一部分。 CreatePkgDef.exe是2010年的一个工具,与RegPkg.exe基本相同,但仅输出pkgdef文件。