一种Visual Studio扩展包的隔离方法转让专利

申请号 : CN201610100325.6

文献号 : CN105760755B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 任丽霞

申请人 : 浪潮通用软件有限公司

摘要 :

本发明公开了一种Visual Studio扩展包的隔离方法,其具体实现过程为:定义沙箱环境;安装VSPackages扩展程序;启动副本实例。本发明的一种Visual Studio扩展包的隔离方法与现有技术相比,适用于使用VSPackages方式扩展Visual Studio集成开发环境时,在同一版本的Visual Studio集成开发环境下,VSPackages及VSPackages的多个版本之间隔离且并行运行,且VSPackages扩展不影响Visual Studio集成开发环境的正常环境,实用性强,易于推广。

权利要求 :

1.一种Visual Studio扩展包的隔离方法,其特征在于, 其实现过程为:一、定义沙箱环境,所述的沙箱环境,包括副本实例、副本实例运行VSPackages扩展程序的路径、副本实例启动的快捷方式、VSPackages扩展程序,该沙箱环境有自己唯一的编号及名称,称为沙箱编号及沙箱名,所述沙箱环境中各部分的具体内容为:副本实例,是基于Visual Studio的一个独立的运行实例,是和Visual Studio集成开发环境的正常环境运行实例完全隔离的,但包含Visual Studio集成开发环境的所有功能;

副本实例运行VSPackages扩展程序的路径,是副本实例定义时指定的副本实例运行VSPackages扩展程序的一个目录;

副本实例启动的快捷方式,是为副本实例的启动创建的一个快捷方式;

VSPackages扩展程序,是Visual Studio扩展包的内容,包括dll及扩展包运行所需要的图片、配置文件;

所述沙箱环境的定义过程为:

为要创建的沙箱定义沙箱编号及沙箱名;

使用Visual Studio命令与沙箱编号,创建副本实例;

配置副本实例运行VSPackages扩展程序的路径;

创建沙箱启动的快捷方式;

二、安装VSPackages扩展程序:

复制VSPackages扩展程序到沙箱运行VSPackages的路径;

写VSPackages扩展程序的注册项到注册表;

三、启动副本实例。

2.根据权利要求1所述的一种Visual Studio扩展包的隔离方法,其特征在于,复制VSPackages扩展程序,是指通过安装程序安装VSPackages扩展程序安装包到沙箱环境,该VSPackages扩展程序安装包,包括Packages目录、Registry目录,其中:Packages目录,包括开发的Visual Studio扩展包的源代码编译后的dll、图片、配置文件;

Registry目录,包括开发的Visual Studio扩展包编译后生成的.pkgdef文件。

3.根据权利要求2所述的一种Visual Studio扩展包的隔离方法,其特征在于,安装VSPackages扩展程序的详细过程为:复制Packages目录下内容到副本实例运行VSPackages扩展程序的路径;

写Registry目录中的.pkgdef文件内容到注册表。

说明书 :

一种Visual Studio扩展包的隔离方法

技术领域

[0001] 本发明涉及Visual Studio开发技术领域,具体地说是一种Visual Studio扩展包的隔离方法。

背景技术

[0002] Visual Studio集成开发环境是微软提供的一个丰富的集成开发环境,可以创建面向 Windows、Android 和 iOS 的应用程序及Web 应用程序和云服务,是C#、ASP.NET等应用开发的首选集成开发环境。
[0003] Visual Studio集成开发环境提供了标准的用户操作组件,比如编译器,编辑器,调试器等。如果想把自定义的组件集成到Visual Studio集成开发环境中,即对Visual Studio集成开发环境做扩展,可以使用Visual Studio SDK创建VSPackage来实现这种扩展(VSPackages中文名为扩展包),比如一个命令,一个菜单,一个新的项目系统,一个新的编程语言,一个新的编辑器等。VSPackages是组成和扩展Visual Studio集成开发环境的软件模块。VSPackages是Visual Studio集成开发环境的重要结构单位,Visual Studio集成开发环境绝大部分功能也是作为一个VSPackages的集合来编写的。
[0004] VSPackages的扩展及安装,在同一版本的Visual Studio集成开发环境下只允许安装一个版本,且直接安装到了Visual Studio集成开发环境的正常环境下,VSPackages的功能很可能会破坏Visual Studio集成开发环境的正常环境,对Visual Studio集成开发环境有安全隐患。
[0005] 在实际的VSPackages扩展开发中,我们希望同一个VSPackages能在同一Visual Studio集成开发环境下能多个版本并行运行,而相互不影响。比如我们为后缀名.do的文件扩展了编辑器,但.do的文件内容前后两个版本变化挺大,而我们一台机器上需要对这两个版本的.do文件进行维护,怎么解决一台机器能在同一Visual Studio集成开发环境下编辑这两个版本的文件呢。
[0006] 一种做法是:启动Visual Studio,加载VSPackage,这时只存在最新版本,且最新版本兼容之前所有版本内容。针对这两个版本的变化,编辑器扩展中做兼容处理来同时支持这两个版本的编辑,但是这种兼容内容处理对于变化多的场景就太繁琐了;
[0007] 一种做法是:编辑某个版本的文件,就把编辑器扩展其他版本卸载掉,安装对应版本的编辑器扩展,这种操作太繁琐,且如果想同时对这两个版本的文件做编辑不太现实。
[0008] 基于此,现提供一种Visual Studio扩展包的隔离方法。

发明内容

[0009] 本发明的技术任务是针对以上不足之处,提供一种Visual Studio扩展包的隔离方法。
[0010] 一种Visual Studio扩展包的隔离方法,包括以下步骤:
[0011] 定义沙箱环境;
[0012] 安装VSPackages扩展程序;
[0013] 启动副本实例。
[0014] 所述的沙箱环境,包括副本实例、副本实例运行VSPackages的路径、副本实例启动的快捷方式、VSPackages扩展程序,该沙箱环境有自己唯一的编号及名称,称为沙箱编号及沙箱名。
[0015] 上述沙箱环境中各部分的具体内容为:
[0016] 副本实例,是基于Visual Studio的一个独立的运行实例,是和Visual Studio集成开发环境的正常环境运行实例完全隔离的,但包含Visual Studio集成开发环境的所有功能;
[0017] 副本实例运行VSPackages的路径,是副本实例定义时指定的副本实例运行VSPackages的一个目录;
[0018] 副本实例启动的快捷方式,是为副本实例的启动创建的一个快捷方式;
[0019] VSPackages扩展程序,是Visual Studio扩展包的内容,包括dll及扩展包运行所需要的图片、配置文件。
[0020] 所述沙箱环境的定义过程为:
[0021] 为要创建的沙箱定义沙箱编号及沙箱名;
[0022] 使用Visual Studio命令与沙箱编号,创建副本实例;
[0023] 配置副本实例运行VSPackages的路径;
[0024] 创建沙箱启动的快捷方式。
[0025] VSPackages扩展程序的安装过程为:
[0026] 复制VSPackages程序到沙箱运行VSPackages的路径。
[0027] 写VSPackages程序的注册项到注册表。
[0028] 复制VSPackages扩展程序,使用自开发的安装程序安装VSPackages安装包到沙箱环境,该自开发的安装程序是隔离方法提供的安装程序。
[0029] 所述VSPackages安装包,包括Packages目录、Registy目录,其中:
[0030] Packages目录,包括开发的Visual Studio扩展包的源代码编译后的dll、图片、配置文件;
[0031] Registry目录,包括开发的Visual Studio扩展包编译后生成的.pkgdef文件。
[0032] 上述安装VSPackages扩展程序的详细过程为:
[0033] 复制Packages目录下内容到副本实例运行VSPackages的路径;
[0034] 写Registry目录中的.pkgdef文件内容到注册表。
[0035] 本发明的一种Visual Studio扩展包的隔离方法和现有技术相比,具有以下有益效果:
[0036] 本发明适用于使用VSPackages方式扩展Visual Studio集成开发环境时,在同一版本的Visual Studio集成开发环境下,VSPackages及VSPackages的多个版本之间隔离且并行运行,且VSPackages扩展不影响Visual Studio集成开发环境的正常环境,实用性强,易于推广。

具体实施方式

[0037] 下面结合具体实施例对本发明作进一步说明。
[0038] 本发明的一种Visual Studio扩展包的隔离方法,包括以下步骤:
[0039] 一、定义沙箱环境;
[0040] 二、安装VSPackages扩展程序;
[0041] 三、启动副本实例。
[0042] 所述的沙箱环境,包括副本实例、副本实例运行VSPackages的路径、副本实例启动的快捷方式、VSPackages扩展程序,该沙箱环境有自己唯一的编号及名称,称为沙箱编号及沙箱名。
[0043] 上述沙箱环境中各部分的具体内容为:
[0044] 副本实例,是基于Visual Studio的一个独立的运行实例,是和Visual Studio集成开发环境的正常环境运行实例完全隔离的,但包含Visual Studio集成开发环境的所有功能;
[0045] 副本实例运行VSPackages的路径,是副本实例定义时指定的副本实例运行VSPackages的一个目录;
[0046] 副本实例启动的快捷方式,是为副本实例的启动创建的一个快捷方式;
[0047] VSPackages扩展程序,是Visual Studio扩展包的内容,包括dll及扩展包运行所需要的图片、配置文件。
[0048] 所述沙箱环境的定义过程为:
[0049] 为要创建的沙箱定义沙箱编号及沙箱名;
[0050] 使用Visual Studio命令+/rootsuffix +沙箱编号,创建副本实例;
[0051] 配置副本实例运行VSPackages的路径;
[0052] 创建沙箱启动的快捷方式。
[0053] VSPackages扩展程序的安装过程为:
[0054] 复制VSPackages程序到沙箱运行VSPackages的路径。
[0055] 写VSPackages程序的注册项到注册表。
[0056] 复制VSPackages扩展程序,使用自开发的安装程序安装VSPackages安装包到沙箱环境,该自开发的安装程序是隔离方法提供的安装程序。
[0057] 所述VSPackages安装包,包括Packages目录、Registy目录,其中:
[0058] Packages目录,包括开发的Visual Studio扩展包的源代码编译后的dll、图片、配置文件;
[0059] Registry目录,包括开发的Visual Studio扩展包编译后生成的.pkgdef文件。
[0060] 上述安装VSPackages扩展程序的详细过程为:
[0061] 复制Packages目录下内容到副本实例运行VSPackages的路径;
[0062] 写Registry目录中的.pkgdef文件内容到注册表。
[0063] 启动沙箱环境,就是执行副本实例启动的快捷方式,副本实例启动后,安装的VSPackages扩展程序就可以使用了。
[0064] 以下以开发一个.do后缀文件的编辑器功能的扩展包为例。
[0065] 扩展包说明:
[0066] 产品提供了.do后缀文件的编辑器扩展包:DataObjectPackage,初始版本是v1.0。
[0067] 随着应用需求的变更,产品对.do的编辑器有新的需求改进, DataObjectPackage提供了新的版本v2.0。
[0068] 分别打包v1.0版本和v2.0版本的DataObjectPackage。
[0069] 扩展包隔离应用:
[0070] 基于步骤一,创建SandV10和Sand V20两个沙箱环境。
[0071] 基于步骤二,沙箱环境SandV10下安装DataObjectPackage 的v1.0版本,沙箱环境SandV20下安装DataObjectPackage的v2.0版本。
[0072] 基于步骤三,启动Sand10沙箱环境,则打开Sand10的副本实例,双击打开对应的.do文件,则自动会用v1.0版本的编辑器打开.do文件并进行编辑。
[0073] 通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
[0074] 除说明书所述的技术特征外,均为本专业技术人员的已知技术。