CN105760755B - 一种Visual Studio扩展包的隔离方法 - Google Patents

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

Info

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
Application number
CN201610100325.6A
Other languages
English (en)
Other versions
CN105760755A (zh
Inventor
任丽霞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur General Software Co Ltd
Original Assignee
Inspur General Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur General Software Co Ltd filed Critical Inspur General Software Co Ltd
Priority to CN201610100325.6A priority Critical patent/CN105760755B/zh
Publication of CN105760755A publication Critical patent/CN105760755A/zh
Application granted granted Critical
Publication of CN105760755B publication Critical patent/CN105760755B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test 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扩展包的隔离方法。
背景技术
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文件内容到注册表。
CN201610100325.6A 2016-02-24 2016-02-24 一种Visual Studio扩展包的隔离方法 Active CN105760755B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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