CN105760755B - 一种Visual Studio扩展包的隔离方法 - Google Patents
一种Visual Studio扩展包的隔离方法 Download PDFInfo
- Publication number
- CN105760755B CN105760755B CN201610100325.6A CN201610100325A CN105760755B CN 105760755 B CN105760755 B CN 105760755B CN 201610100325 A CN201610100325 A CN 201610100325A CN 105760755 B CN105760755 B CN 105760755B
- Authority
- CN
- China
- Prior art keywords
- vspackages
- visual studio
- sandbox
- extenders
- replica instance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 56
- 238000002955 isolation Methods 0.000 title abstract description 5
- 244000035744 Hura crepitans Species 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 23
- 239000004606 Fillers/Extenders Substances 0.000 claims description 26
- 238000009434 installation Methods 0.000 claims description 18
- 238000005192 partition Methods 0.000 claims description 11
- 238000011900 installation process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种Visual Studio扩展包的隔离方法,其具体实现过程为:定义沙箱环境;安装VSPackages扩展程序;启动副本实例。本发明的一种Visual Studio扩展包的隔离方法与现有技术相比,适用于使用VSPackages方式扩展Visual Studio集成开发环境时,在同一版本的Visual Studio集成开发环境下,VSPackages及VSPackages的多个版本之间隔离且并行运行,且VSPackages扩展不影响Visual Studio集成开发环境的正常环境,实用性强,易于推广。
Description
技术领域
本发明涉及Visual Studio开发技术领域,具体地说是一种Visual Studio扩展包的隔离方法。
背景技术
Visual Studio集成开发环境是微软提供的一个丰富的集成开发环境,可以创建面向 Windows、Android 和 iOS 的应用程序及Web 应用程序和云服务,是C#、ASP.NET等应用开发的首选集成开发环境。
Visual Studio集成开发环境提供了标准的用户操作组件,比如编译器,编辑器,调试器等。如果想把自定义的组件集成到Visual Studio集成开发环境中,即对VisualStudio集成开发环境做扩展,可以使用Visual Studio SDK创建VSPackage来实现这种扩展(VSPackages中文名为扩展包),比如一个命令,一个菜单,一个新的项目系统,一个新的编程语言,一个新的编辑器等。VSPackages是组成和扩展Visual Studio集成开发环境的软件模块。VSPackages是Visual Studio集成开发环境的重要结构单位,Visual Studio集成开发环境绝大部分功能也是作为一个VSPackages的集合来编写的。
VSPackages的扩展及安装,在同一版本的Visual Studio集成开发环境下只允许安装一个版本,且直接安装到了Visual Studio集成开发环境的正常环境下,VSPackages的功能很可能会破坏Visual Studio集成开发环境的正常环境,对Visual Studio集成开发环境有安全隐患。
在实际的VSPackages扩展开发中,我们希望同一个VSPackages能在同一VisualStudio集成开发环境下能多个版本并行运行,而相互不影响。比如我们为后缀名.do的文件扩展了编辑器,但.do的文件内容前后两个版本变化挺大,而我们一台机器上需要对这两个版本的.do文件进行维护,怎么解决一台机器能在同一Visual Studio集成开发环境下编辑这两个版本的文件呢。
一种做法是:启动Visual Studio,加载VSPackage,这时只存在最新版本,且最新版本兼容之前所有版本内容。针对这两个版本的变化,编辑器扩展中做兼容处理来同时支持这两个版本的编辑,但是这种兼容内容处理对于变化多的场景就太繁琐了;
一种做法是:编辑某个版本的文件,就把编辑器扩展其他版本卸载掉,安装对应版本的编辑器扩展,这种操作太繁琐,且如果想同时对这两个版本的文件做编辑不太现实。
基于此,现提供一种Visual Studio扩展包的隔离方法。
发明内容
本发明的技术任务是针对以上不足之处,提供一种Visual Studio扩展包的隔离方法。
一种Visual Studio扩展包的隔离方法,包括以下步骤:
定义沙箱环境;
安装VSPackages扩展程序;
启动副本实例。
所述的沙箱环境,包括副本实例、副本实例运行VSPackages的路径、副本实例启动的快捷方式、VSPackages扩展程序,该沙箱环境有自己唯一的编号及名称,称为沙箱编号及沙箱名。
上述沙箱环境中各部分的具体内容为:
副本实例,是基于Visual Studio的一个独立的运行实例,是和Visual Studio集成开发环境的正常环境运行实例完全隔离的,但包含Visual Studio集成开发环境的所有功能;
副本实例运行VSPackages的路径,是副本实例定义时指定的副本实例运行VSPackages的一个目录;
副本实例启动的快捷方式,是为副本实例的启动创建的一个快捷方式;
VSPackages扩展程序,是Visual Studio扩展包的内容,包括dll及扩展包运行所需要的图片、配置文件。
所述沙箱环境的定义过程为:
为要创建的沙箱定义沙箱编号及沙箱名;
使用Visual Studio命令与沙箱编号,创建副本实例;
配置副本实例运行VSPackages的路径;
创建沙箱启动的快捷方式。
VSPackages扩展程序的安装过程为:
复制VSPackages程序到沙箱运行VSPackages的路径。
写VSPackages程序的注册项到注册表。
复制VSPackages扩展程序,使用自开发的安装程序安装VSPackages安装包到沙箱环境,该自开发的安装程序是隔离方法提供的安装程序。
所述VSPackages安装包,包括Packages目录、Registy目录,其中:
Packages目录,包括开发的Visual Studio扩展包的源代码编译后的dll、图片、配置文件;
Registry目录,包括开发的Visual Studio扩展包编译后生成的.pkgdef文件。
上述安装VSPackages扩展程序的详细过程为:
复制Packages目录下内容到副本实例运行VSPackages的路径;
写Registry目录中的.pkgdef文件内容到注册表。
本发明的一种Visual Studio扩展包的隔离方法和现有技术相比,具有以下有益效果:
本发明适用于使用VSPackages方式扩展Visual Studio集成开发环境时,在同一版本的Visual Studio集成开发环境下,VSPackages及VSPackages的多个版本之间隔离且并行运行,且VSPackages扩展不影响Visual Studio集成开发环境的正常环境,实用性强,易于推广。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
本发明的一种Visual Studio扩展包的隔离方法,包括以下步骤:
一、定义沙箱环境;
二、安装VSPackages扩展程序;
三、启动副本实例。
所述的沙箱环境,包括副本实例、副本实例运行VSPackages的路径、副本实例启动的快捷方式、VSPackages扩展程序,该沙箱环境有自己唯一的编号及名称,称为沙箱编号及沙箱名。
上述沙箱环境中各部分的具体内容为:
副本实例,是基于Visual Studio的一个独立的运行实例,是和Visual Studio集成开发环境的正常环境运行实例完全隔离的,但包含Visual Studio集成开发环境的所有功能;
副本实例运行VSPackages的路径,是副本实例定义时指定的副本实例运行VSPackages的一个目录;
副本实例启动的快捷方式,是为副本实例的启动创建的一个快捷方式;
VSPackages扩展程序,是Visual Studio扩展包的内容,包括dll及扩展包运行所需要的图片、配置文件。
所述沙箱环境的定义过程为:
为要创建的沙箱定义沙箱编号及沙箱名;
使用Visual Studio命令+/rootsuffix +沙箱编号,创建副本实例;
配置副本实例运行VSPackages的路径;
创建沙箱启动的快捷方式。
VSPackages扩展程序的安装过程为:
复制VSPackages程序到沙箱运行VSPackages的路径。
写VSPackages程序的注册项到注册表。
复制VSPackages扩展程序,使用自开发的安装程序安装VSPackages安装包到沙箱环境,该自开发的安装程序是隔离方法提供的安装程序。
所述VSPackages安装包,包括Packages目录、Registy目录,其中:
Packages目录,包括开发的Visual Studio扩展包的源代码编译后的dll、图片、配置文件;
Registry目录,包括开发的Visual Studio扩展包编译后生成的.pkgdef文件。
上述安装VSPackages扩展程序的详细过程为:
复制Packages目录下内容到副本实例运行VSPackages的路径;
写Registry目录中的.pkgdef文件内容到注册表。
启动沙箱环境,就是执行副本实例启动的快捷方式,副本实例启动后,安装的VSPackages扩展程序就可以使用了。
以下以开发一个.do后缀文件的编辑器功能的扩展包为例。
扩展包说明:
产品提供了.do后缀文件的编辑器扩展包:DataObjectPackage,初始版本是v1.0。
随着应用需求的变更,产品对.do的编辑器有新的需求改进, DataObjectPackage提供了新的版本v2.0。
分别打包v1.0版本和v2.0版本的DataObjectPackage。
扩展包隔离应用:
基于步骤一,创建SandV10和Sand V20两个沙箱环境。
基于步骤二,沙箱环境SandV10下安装DataObjectPackage 的v1.0版本,沙箱环境SandV20下安装DataObjectPackage的v2.0版本。
基于步骤三,启动Sand10沙箱环境,则打开Sand10的副本实例,双击打开对应的.do文件,则自动会用v1.0版本的编辑器打开.do文件并进行编辑。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (3)
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文件内容到注册表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610100325.6A CN105760755B (zh) | 2016-02-24 | 2016-02-24 | 一种Visual Studio扩展包的隔离方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610100325.6A CN105760755B (zh) | 2016-02-24 | 2016-02-24 | 一种Visual Studio扩展包的隔离方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105760755A CN105760755A (zh) | 2016-07-13 |
CN105760755B true CN105760755B (zh) | 2018-06-19 |
Family
ID=56329712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610100325.6A Active CN105760755B (zh) | 2016-02-24 | 2016-02-24 | 一种Visual Studio扩展包的隔离方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760755B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107171894A (zh) * | 2017-06-15 | 2017-09-15 | 北京奇虎科技有限公司 | 终端设备、分布式云端检测系统以及样本检测的方法 |
CN107506641A (zh) * | 2017-09-30 | 2017-12-22 | 北京奇虎科技有限公司 | 沙箱管理方法及装置、计算设备、存储介质 |
CN109670299A (zh) * | 2018-12-29 | 2019-04-23 | 深圳点猫科技有限公司 | 一种创建Python沙盒环境的方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102232217A (zh) * | 2008-12-02 | 2011-11-02 | 微软公司 | 插件的沙盒执行 |
CN102663318A (zh) * | 2012-03-22 | 2012-09-12 | 百度在线网络技术(北京)有限公司 | 浏览器及客户端 |
CN103617092A (zh) * | 2013-11-21 | 2014-03-05 | 北京奇虎科技有限公司 | 一种基于浏览器的插件运行方法和装置 |
CN104216741A (zh) * | 2014-08-25 | 2014-12-17 | 华中科技大学 | 基于APK动态加载的Android插件化实现方法、装置及交互方法 |
CN104704468A (zh) * | 2012-09-27 | 2015-06-10 | 谷歌公司 | Web应用程序的跨系统安装 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8662992B2 (en) * | 2011-08-29 | 2014-03-04 | Wms Gaming, Inc. | Jurisdictional control in a wagering game system plugin architecture |
-
2016
- 2016-02-24 CN CN201610100325.6A patent/CN105760755B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102232217A (zh) * | 2008-12-02 | 2011-11-02 | 微软公司 | 插件的沙盒执行 |
CN102663318A (zh) * | 2012-03-22 | 2012-09-12 | 百度在线网络技术(北京)有限公司 | 浏览器及客户端 |
CN104704468A (zh) * | 2012-09-27 | 2015-06-10 | 谷歌公司 | Web应用程序的跨系统安装 |
CN103617092A (zh) * | 2013-11-21 | 2014-03-05 | 北京奇虎科技有限公司 | 一种基于浏览器的插件运行方法和装置 |
CN104216741A (zh) * | 2014-08-25 | 2014-12-17 | 华中科技大学 | 基于APK动态加载的Android插件化实现方法、装置及交互方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105760755A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8171470B2 (en) | Software installation and support | |
CN105760755B (zh) | 一种Visual Studio扩展包的隔离方法 | |
US8185889B2 (en) | Methods and systems for porting software packages from one format to another | |
US8156485B2 (en) | Method and apparatus for creating a pluggable, prioritized configuration engine to be used for configuring a software during installation, update and new profile creation | |
CN103324474B (zh) | 基于Linux操作系统跨体系构造ISO的方法及模块 | |
US6425078B1 (en) | Method for factory-installation of files and directories with long filenames while maintaining proper reference to their short filename equivalents | |
WO2008027922A2 (en) | Software installation using template executables | |
US20130167136A1 (en) | Component-based installation | |
WO2006047163A3 (en) | System and method for identifying and removing malware on a computer system | |
CN104484169A (zh) | 一种Android软件用户界面生成方法、系统及应用系统 | |
JP2006518504A5 (zh) | ||
Yadavalli et al. | Raising binaries to llvm ir with mctoll (wip paper) | |
WO2015096275A1 (zh) | 一种支持组件组合构建的软件构建方法 | |
CN104317573B (zh) | 安卓安装包转换方法和装置以及运行应用的方法和装置 | |
US20080141241A1 (en) | Method and system for allowing an eclipse feature to create/remove/update program groups and shortcuts, via an eclipse install handler | |
WO2004079537A3 (en) | Build and install for software applications | |
CN105354069A (zh) | 一种U盘引导Windows PE系统的方法 | |
CN102609301B (zh) | 给多个客户端快速部署软件的方法 | |
CN104166554B (zh) | 一种支持多操作系统的软件开发方法及安装方法 | |
CN101571801A (zh) | 业务扩展系统及方法 | |
CN104391719A (zh) | 一种基于安卓平台免编译的快速的镜像客制化方法 | |
TW201432472A (zh) | 網站發佈系統及方法 | |
CN106371895A (zh) | 一种升级kvm虚拟机去虚拟化的方法 | |
Macleod | OpenNebula KVM SR-IOV driver | |
CN106095476B (zh) | 一种基于heat的新增组件服务方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |