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

标签 visual-studio deployment vsx vspackage vsix

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

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

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

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

任何帮助将不胜感激!

最佳答案

简短回答:如果您想要一个针对/注册 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.vsixmanifest 文件中包含 标记,并将已展开的文件放在 下\Common7\IDE\Extensions\.

就注册而言...您的问题中有一些不正确的地方。对于 2005 和 2008,向 Visual Studio 注册包的安装程序应始终在 HKEY_LOCAL_MACHINE 下注册。 (2008 年的 PKgdef 用于基于“隔离外壳”的应用程序。)除了 Visual Studio 2010 中的注册表之外,现在还支持放置 pkgdef 文件。/p>

RegPkg 是 Visual Studio SDK for 2005/2008/2010 中包含的一个实用程序,它反射(reflect)您的程序包程序集并以多种不同的格式输出相应的注册信息。它旨在在开发/构建时用于生成您的注册信息,并且不应用作安装程序的一部分。

CreatePkgDef.exe 是 2010 年的一个工具,本质上与 RegPkg.exe 相同,但它输出 pkgdef 文件。

关于visual-studio - 如何部署和注册支持多个版本的 Visual Studio(2005、2008、2010)的 VSPackage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2792706/

相关文章:

c++ - 如何将 std::array C++11 操作转换为 Boost+VS08?

node.js - Redis配置为保存RDB快照,但当前无法在磁盘上持久保存-Ubuntu Server

visual-studio-2008 - 更改项目中 Web 引用的命名空间以生成 VS 项目模板

c# - 打开不属于项目的 cs 文件时,有什么方法可以使 Intellisense 工作?

c# - 扩展 Visual Studio

visual-studio - angular 2 - PrimeNg teamcity/visual Studio 编译失败(不包括 node_modules)

c# - 如何将控制台 C# 应用程序添加到 ASP.NET 网站?

c# - 如何自动构建 MEF 模块?

java - 如何指定maven的distributionManagement组织范围?

deployment - 部署网站的最佳方式?