做完VSPackage后,如何打包发布它?其实有很多种打包的方式,在这里我只介绍在VS2008下用Wix制作VSPackage的安装程序。...创建测试用的VSPackage 新建一个VSPackage项目用来测试。为了演示安装后的效果,别忘了在向导中给它添加一个Menu Command。...include VSPackage1.wxs ?...)\VSPackage1\bin\debug\VSPackage1.dll" /> 中Id对应的值。...include VSPackage1.wxs ?
VSPackage是构建Visual Studio的一个基本的单元。实际上,Visual Studio是由一系列的VSPackage协同工作而成的,就像一个生态系统一样。...在上图中,VSPackage1和VSPackage3是service provider,而VSPackage2不是。能给其他package调用的服务被称为全局服务(global service)。...VsPackage1和VsPackage3都包含global service,这些服务可以被VSPackage2调用(当然也可以被其他的package调用)。...VSPackage1和VSPackage3都包含local service,它们被对象调用(例如被VSPackage1中的编辑器和VSPackage3中的工具窗)。...VSPackage是基于COM技术的。
在LearnVSXNow系列译文的第6篇发布后,有个朋友问了这么一个问题:“如果我想将一个Package的UI元素放至另外一个第三方的Package的...
所以在这篇文章里我只是讲一些和VSPackage测试相关的基本问题。 我相信VSPackage的自动化测试能带给我们很大的帮助。...但我并不会很深入的讲解VSPackage的测试方法,我只是给你们展示一下如何进行VSPackage的测试,这样你们就可以利用VSPackage的测试来帮助你们测试package的正确性。...这一次,VSPackage向导会创建三个项目。...那么,当我们测试VSPackage的时候,上下文是什么呢?这就要看我们要测试的是什么了。...深入研究一下VSPackage向导生成的测试项目是很值得的,因为我们可以在这些代码中得到很多文档里没有提到的信息。VSPackage向导生成了两个测试项目,我们来逐一看一下它们。
另外,由于这些资源标识是由VS IDE来处理的,所以这个图片必须放在VSPackage.resx文件中。...为了给工具窗添加“clock”图片,我们可以把这个图片文件添加到VSPackage.resx文件中,并用一个数字作为该图片资源的ID,在这里我们用300作为这个图片资源的ID。...但是在这里我用了和VSPackage向导一样的方式:通过在Resources.resx文件中指定的值来给Caption赋值。...第一个必须是一个整型的ID,这个ID值就是我们在VSPackage.resx文件中添加的图片资源的ID。...一个工具窗不仅能被所在的VSPackage调用,也能被其他的VSPackage调用。在前面的文章中(第5篇),我提到了一个按需加载package的模型。
在VSPackage Information页面,我们输入如下内容: ? 在下一步,为了创建一个简单的菜单命令,我们选中Menu Command: ?...在package编译过程中,vsct文件会被编译成二进制的资源,并以1000作为资源ID添加到VSPackage.resx资源文件中。...7: } ProvideMenuResourceAttribute构造函数有两个参数,第一个参数是resourceID,这个参数值必须是1000,因为VSCT编译器在把vsct文件编译到VSPackage...这个文件被VSCT编译器编译成二进制的资源,并合并到VSPackage资源中。
VSPackage Name, VSPackage Version and Detailed information用于显示我们的package,Minimum Visual Studio value选项代表我们的...这个文件用于定义这些GUID VSPackage.resx 资源文件,保存我们package用到的字符串和图片 向导也生成了一些“并不重要”的文件: 文件名 描述 AssemblyInfo.cs...资源(名字、描述和图标)定义在VSPackage.resx文件中。
熟悉一下regpkg.exe 如果看过了前面的文章,并且创建了示例包,你的Visual Studio experimental hive下就注册了一些VSPackage的信息。...regpkg.exe程序的作用就是注册和卸载VSPackage,并且支持“手动”地注册和卸载。 用哪个版本的regpgk.exe?...你可以试一下:在任意一个VSPackage项目里,删掉对~Shell.9.0.dll的引用,并添加对~Shell.dll的引用。...当生成你的VSPackage时,你会看到“No registration data found in this assembly”的错误消息。
创建一个空的VSPackage 我们先创建一个空的VSPackage。因为在前面的文章中我说明了创建空package的步骤,所以在这里就省略掉截图了。...选择Visual Studio Integration Package类型的项目,该项目模板会弹出我们的朋友—VSPackage向导。命名工程为StartupToolset。...为了能把vsct文件编译到资源中,应该设置Build Action为VSCTCompile(如果我们用VSPackage向导并选择Menu Command的话,这个文件会自动设置成VSCTCompile...ResourceName子节点使得编译器在编译过程中,用1000作为资源ID,把cto文件编译到VSPackage中。...总结 这这一篇中,我们开始创建一个工具集来熟悉VSPackage的开发。作为这个系列的第一部分,我们创建了一个空的package,并手动添加了一个菜单命令。
在VSPackage Information页面,我们输入如下内容: ? 在下一步,我们选中Tool Window复选框,以便为我们的package创建一个工具窗。 ?...在我们的例子中,VSPackage向导创建了MyToolWindow的一个单一的实例(姑且称为它单例)以及下面的代码去显示它(在SimpleToolWindowPackage类里): 1: private...另外,VSPackage向导增加了一些新的代码去实现期望的效果: — 用户界面(包含“Click Me!”按钮的控件)是一个简单WinForm用户控件。
KeyBindings/> 其中,最重要的是Extern、Commands和Symbols节点,让我们看一下VSPackage...通常情况下,我们的程序集里只包含一个Package,所以我们通常在把VSPackage向导帮我们生成的Package的ID作为package属性的值: VSPackage向导创建了一个带有工具窗的package的话,在vsct文件里我们可以看到如下定义: <?xml version="1.0" encoding="utf-8"?...创建一个主菜单级别的命令 VSPackage向导可以帮我们把菜单放到如下位置:如果我们创建一个简单的命令的话,向导会把菜单放到“工具”菜单下;如果我们创建一个简单的工具窗的话,向导会把菜单放到...在生成VSPackage时,vsct文件被编译到cto文件里,并且作为嵌入的资源添加到Package程序集里。
参数200是资源的ID,表示EditorFactory的名字(在VSPackage.resx文件中定义)。TrustLevel 用来设置Editor的信任级别。...NameResourceID属性设置在添加新项对话框里,我们的文件类型显示的名字,它是一个在VSPackage.resx中定义的资源ID。...— #200: 模版的名称,是一个定义在VSPackage.resx中的资源ID。应该是和上面提到的NameResourceID同一个东西。 — 32: 模版显示在添加新项对话框中的顺序。...— #202: 模版的描述,是一个定义在VSPackage.resx中的资源ID。 — GUID: 定义资源的dll的GUID。在这里我们用Package的GUID。
我已经用它转换了 WPF、VSPackage、WWF 等 MSDN 章节为 PDF。
我们可以从Visual Studio Gallery(Visual Studio库)网站上安装扩展,这些扩展一般是VSIX包格式,包括项目模板、项模板、工具箱项、托管扩展框架(MEF)组件和VSPackage
利用VSPackage向导,可以帮助我们创建一个自定义编辑器,但我不打算利用VSPackage向导。这是因为向导生成的代码太长了:光编辑器就有差不多有五千行的代码,但实际上并不需要这么多代码。...和工具窗(Tool Window)一样,自定义编辑器也是从属于VSPackage的。
几乎所有的VSPackage都有用户交互,用户可以通过点击Visual Studio中的菜单或工具栏来激活VSPackage的功能或显示相关的界面。...一些概念 我们创建的VSPackage的功能可以被别的package调用,也可以被最终用户用,可以被最终用户用的功能被称作“命令(command)”,例如打印、添加文件,等等。
VSPackage: VS 插件。 初步成果 20130328 开始实现,至20130415 完成第一版本,可在 VS 中查看实体的领域模型关系图。
前面的11篇文章涉及到了在VSX开发中最重要的知识,利用这些知识,我们已经可以开始开发VSPackage了。...创建初始代码 用VSPackage向导创建了HowToPackage项目之后,我添加了一个简单的菜单和工具窗。我不太喜欢向导生成的类和常数的名字,所以我用重构工具改了一些名字。
微软说,“要成功的开发VsPackage你必须学习interop程序集”。这是一个非常怪异的说法,会花费我们大量的时间。
首先,我们先来创建一个VSPackage项目,项目名称为“WinFormDesigner”,不用添加ToolWindow和Menu。
领取专属 10元无门槛券
手把手带您无忧上云