Visual Studio 扩展部署
Visual Studio 支持三种用于部署扩展的格式:Visual Studio 扩展 (VSIX)、Windows Installer (MSI) 和 Visual Studio 内容安装程序 (VSI)。也可以通过使用平台注册向 Visual Studio 注册自定义控件。本主题比较了不同的部署策略并列出各个部署策略的功能。
选择部署方法
根据要部署的扩展的类型以及部署方法的功能选择部署格式。
VSIX
当您上传到 VSIX 包的格式中的扩展Visual Studio 库 网站,用户可以查找并安装它们通过检查中的在线扩展 扩展和更新对话框。有关更多信息,请参见安装和管理 Visual Studio 工具和扩展。
您可以使用 VSIX 格式打包项目和项模板、 Visual Studio 集成包,托管扩展框架 (MEF) 组件、 工具箱控件、 组件和自定义类型。VSIX 格式使用严格基于文件的部署,并且不支持写入全局程序集缓存 (GAC) 或系统注册表。VSIX 是它所支持的扩展类型的首选部署方法。
VSIX 部署要求您已安装 Visual Studio SDK。有关更多信息,请参见 Visual Studio SDK 文档中的VSIX 部署。
MSI
在 Visual Studio 中创建安装项目时,将其添加到包含扩展的解决方案,并生成项目,您将得到 .msi 文件。MSI 格式支持大多数应用程序和扩展类型,并且可执行诸如写入 GAC 和系统注册表等安装操作。在扩展和更新对话框中,您可以显示和安装基于 MSI 的扩展,但不能启用或禁用它们。有关 MSI 部署的更多信息,请参见 Windows Installer 部署。
说明 |
---|
运行devenv /setup在安装或卸载 MSI 扩展名之后。 |
VSI
Visual Studio 的内容安装程序不支持上传到 Visual Studio 的库,卸载或写入到 gac 中或系统注册表。但是,您可以使用它来部署外接程序和代码段,VSIX 格式不支持。有关更多信息,请参见如何:打包组件以使用 Visual Studio 内容安装程序。
平台注册
以下列表显示了 AssemblyFoldersEx 注册支持的功能。
批量安装目录中的所有控件而不必逐一注册控件。
支持在工具箱中指定图标和将控件分组。
在 Visual Studio 的**“添加引用”对话框中包括程序集以及(可选)在工具箱的“选择项”**对话框中包括控件。
在基框架注册表项中的单一位置简化注册。这将避免检查不同的 Visual Studio SKU 并查找每个根项的复杂性。
支持带有以特定的 Visual Studio 版本或 Expression Blend 版本为目标的多个设计时程序集的单一控件程序集。
有关使用此功能的信息和示例,请参见部署自定义控件和设计时程序集。
MSI 中的平台注册
若要将程序集添加到**“添加引用”对话框并将控件添加到工具箱的“选择项”**对话框,必须向托管平台的 AssemblyFoldersEx 注册表项注册程序集。若要使用您的图标和制表符位置在工具箱中安装控件,还必须指定 Toolbox 注册表项中的值。有关更多信息,请参见部署自定义控件和设计时程序集。
支持的扩展类型
下表显示哪些打包格式支持哪些扩展类型。
扩展类型 |
VSIX |
MSI |
VSI |
平台注册 |
---|---|---|---|---|
项目模板 |
是 |
是 |
是 |
否 |
项模板 |
是 |
是 |
是 |
否 |
程序集 |
是 |
是 |
否 |
是 |
MEF 组件 |
是 |
是 |
否 |
否 |
VSPackage |
是 |
是 |
否 |
否 |
工具箱控件 |
是 |
是 |
是 |
是 |
外接程序 |
否 |
是 |
是 |
否 |
代码段 |
否 |
否 |
是 |
否 |
自定义扩展类型 |
是 |
是 |
否 |
否 |
支持的功能
下表显示哪些打包格式支持哪些安装选项。
功能 |
VSIX |
MSI |
VSI |
平台注册 |
MSI 中的平台注册 |
---|---|---|---|---|---|
启用和禁用安装的扩展 |
是 |
否 |
否 |
否 |
否 |
检查是否有更新 |
是 |
否 |
否 |
否 |
否 |
写入系统注册表 |
否 |
是 |
否 |
是 |
是 |
向 GAC 注册 |
否 |
是 |
否 |
是 |
是 |
在安装过程中配置 |
否 |
是 |
否 |
是 |
是 |
上载到 Visual Studio 库 |
是 |
是 |
否 |
否 |
否 |
双击安装 |
是 |
是 |
是 |
否 |
是 |
出现在工具箱的“选择项”对话框中 |
否 |
是 |
否 |
是 |
是 |
出现在“添加引用”对话框中 |
否 |
是 |
否 |
是 |
是 |
在 Visual Studio 之前(或之后)安装 |
否 |
是 |
否 |
是 |
是 |
以其他设计器(如 Expression Blend)为目标 |
否 |
是 |
否 |
是 |
是 |
发布
您可以通过将 Visual Studio 扩展上载到网站或网络共享来分发任何 Visual Studio 扩展。如果将部署软件包的 VSIX 格式,或者是 MSI,您可以使其可用于扩展和更新 对话框,通过它来上载所有 Visual Studio 用户 Visual Studio 库 的网站,这样会使包中可见 扩展和更新对话框。可以将其他类型的扩展作为引用链接添加到该库中。
请参见
任务
如何:打包组件以使用 Visual Studio 内容安装程序