2009年12月-Visual Studio博客 https://devblogs.microsoft.com/visualstudio/2009/12/ Visual Studio工程团队产品洞察力的官方来源 2022年10月17日星期一22:10:57+0000 英语-美国 每小时 1 https://devblogs.microsoft.com/visualstudio/wp-content/uploads/sites/4/2018/10/microsoft-Favicon.png 2009年12月-Visual Studio博客 https://devblogs.microsoft.com/visualstudio/2009/12/ 32 32 关于编辑和可扩展性的Codecast访谈 https://devblogs.microsoft.com/visualstudio/codecast-interviews-about-the-editor-and-extensibility/ 2009年12月19日星期六19:12:00+0000 https://blogs.msdn.microsoft.com/visualstudio/2009/12/19/codecast-interviews-about-the-editor-and-extensibility/  
大家节日快乐! 
前几天,我和Chris Granger会见了Ken Levy,讨论了新的编辑器和VS Extensibility。
Ken负责《代码》杂志的代码演员访谈。克里斯和我与肯坐下来讨论编辑,

帖子关于编辑器和可扩展性的Codecast采访首次出现于Visual Studio博客.

]]>
 

大家节日快乐! 

我和克里斯·格兰杰见过面肯·利维前几天,我们将讨论新的编辑器和VS扩展性。

Ken负责在代码库Chris和我与Ken坐下来讨论编辑器、SDK、扩展管理器、VSIX以及我们在Visual Studio 2010中发布的一些很酷的新东西。

下面是代码转换链接……尽情享受吧!🙂

Visual Studio扩展性(SDK、扩展管理器)

Visual Studio编辑器

韦斯皮克

Quan收件人–Visual Studio平台团队项目经理
简短的个人简历:Quan负责扩展管理器和Visual Studio SDK。Quan在微软工作了十多年,还曾在Tablet PC团队和Visual Studio部署团队工作过。

帖子关于编辑和可扩展性的Codecast访谈首次出现于Visual Studio博客.

]]>
什么是PkgDef?为什么? https://devblogs.microsoft.com/visualstudio/whats-a-pkgdef-and-why/ 2009年12月18日星期五04:58:00+0000 https://blogs.msdn.microsoft.com/visualstudio/2009/12/18/whats-a-pkgdef-and-why/ .pkgdef文件是一种将应用程序配置信息封装在易于编辑、可分发和可部署的形式中的方法。它是在Visual Studio 2008 SP1中引入的,用于支持独立Shell应用程序的配置。在VisualStudio2010中,.pkgdef文件具有更广泛的作用,并且更容易集成到IDE和Shell中(集成和隔离)。

帖子什么是PkgDef?为什么?首次出现于Visual Studio博客.

]]>
A类.pkgdef文件是将应用程序配置信息封装为易于编辑、可分发和可部署的形式的方法。它是在Visual Studio 2008 SP1中引入的,用于支持隔离外壳应用程序的配置。在Visual Studio 2010中,.pkgdef文件具有更广泛的作用,并且更加集成到IDE和Shell中(集成和隔离)。本文将简要描述.pkgdef格式,并介绍它在VS2010中使用的场景。未来的帖子将更详细地介绍特定场景。

以下是.pkgdef文件的一部分,该文件在IDE中注册扩展管理器(作为VS包编写):

形象

它看起来很像从注册表编辑器导出的.reg文件。有一个键差异:注册表项的根(例如,“HKEY_LOCAL_MACHINESoftwareMicrosoftVisualStudio10.0”)已抽象到标记“$RootKey$”中。这以及注册表项和路径的其他一些标记化值,允许给定的.pkgdef文件可用于多个应用程序并可移植到任何机器。

此示例还演示了为什么此格式最初称为“pkgdef”。.pkgdef文件可用于定义包的注册。既然这种格式用于许多其他注册和配置任务,就有人谈到要将名称和扩展名更改为更通用的格式。我们认为pkgdef这个称呼和其他称呼一样好。像大多数计算机术语一样,名字似乎已经固定了。

让我们回头看看.pkgdef文件的第一个应用程序,在VS2008中配置独立Shell应用程序,看看它涉及到什么。独立Shell应用程序从至少四个.pkgdef文件中读取其配置数据。

文件 描述 位置
我的VSShellStub.pkgdef 在创建独立Shell应用程序项目时,由新建项目向导创建。配置应用程序pkgdef环境的主pkgdef。 旁边MyVSShellStub.exe
MyVSShellStub应用程序.pkgdef 在创建独立Shell应用程序项目时,由新建项目向导创建。包含用于配置和标记隔离外壳应用程序的基本值 在里面扩展在下面MyVSShellStub.exe
MyVsShellStub.pkgundef 也是由向导创建的。用于删除(或取消定义)作为独立Shell可再分发安装的一部分配置的包(请参阅BaseConfig.pkgdef) 旁边MyVSShellStub.exe
基本配置.pkgdef 隔离外壳可再分发安装的一部分。包含Shell核心功能的配置信息,例如编辑器和设计器以及IDE的其他部分 在里面外壳扩展平台在C:程序文件下Microsoft Visual Studio X.0 Common7 IDE
我的包*.pkgdef 为作为独立Shell应用程序的一部分创建的任何VS包项目创建 在里面扩展在下面MyVSShellStub.exe(以及其他定义包定义搜索路径)

请注意,配置和注册信息来源于应用程序开发人员和Microsoft。所有这些值都必须合并到特定于应用程序的公共位置,以便Shell和应用程序中的包可以检索它们。在VS 2008中,这是在安装隔离外壳应用程序期间通过使用“/setup”开关运行可执行的应用程序(作为设置自定义操作)来完成的。这导致Shell读取所有.pkgdef文件,并在HKEY_LOCAL_MACHINE下的注册表中为应用程序构建新的配置配置单元。在独立Shell应用程序的开发和测试周期中,使用“/ranu”(“以正常用户身份运行”)开关在HKEY_CURRENT_user下创建测试配置单元,以避免管理员访问注册表时出现问题。

PkgDefIsoMerge包

Visual Studio 2010使.pkgdef加载和合并操作成为初始化序列用于Shell和IDE。它还将合并的目标(称为配置(或配置)缓存)定位在HKEY_CURRENT_USER下(位于应用程序的用户设置旁边,但带有“_config”后缀)。这就不需要在安装过程中运行合并,也不需要在测试过程中使用“/ranu”开关。它还支持一个附加场景:扩展管理器。

扩展管理器功能允许用户将扩展下载到Visual Studio IDE并集成它们,而无需运行安装程序。写为VS包的扩展必须使用.pkgdef文件在IDE中注册。安装扩展并启用后,只需重新启动IDE(通过解压缩其VSIX文件),IDE就会根据Visual Studio安装期间写入HKEY_LOCAL_MACHINE的值以及磁盘上.pkgdef文件中的值构建合并注册表配置单元。用户无需执行任何额外步骤或具有管理员权限。

剪辑_图像003

您可能会注意到,对于隔离Shell应用程序,所有配置值都来自.pkgdef文件。但在VisualStudioIDE中,一些值来自HKEY_LOCAL_MACHINE。在后一种情况下,VS继续使用HKLM配置单元,以支持一些兼容性和服务场景。但我们计划尽可能继续从注册表中移出更多配置值。

.pkgdef文件是在VS2008中引入的,它允许以更模块化的方式部署VisualStudioShell的配置值。VS 2010中.pkgdef文件加载和合并的改进使.pkgdef文件的使用更加自动化,并支持无需安装Visual Studio扩展。

在以后的帖子中,我计划更详细地描述VS决定刷新配置缓存的方式和时间,为什么不加载.pkgdef文件,如何调试它,以及各种.pkgdef文件的用途。与此同时,亚伦·马滕(Aaron Marten)和德米特里·冈查伦科(Dmitry Goncharenko)已经写了几篇优秀的相关文章,其中一些我已经在上面提到过:

您可能还想阅读Visual Studio Shell简介或查看最近的VS 2010壳牌公司介绍.

剪辑_图像004

比尔·温伯格:开发人员,Visual Studio平台

Bill是微软的新手,但在IDE和垂直应用程序方面有多年的软件行业经验。对于Visual Studio 2010,他是PkgDef Management的主要贡献者。

帖子什么是PkgDef?为什么?首次出现于Visual Studio博客.

]]>
什么是PkgDef?为什么? https://devblogs.microsoft.com/visualstudio/whats-a-pkgdef-and-why-2/ 2009年12月18日星期五04:58:00+0000 https://blogs.msdn.microsoft.com/visualstudio/2009/12/18/whats-a-pkgdef-and-why/ .pkgdef文件是一种将应用程序配置信息封装在易于编辑、可分发和可部署的形式中的方法。它是在Visual Studio 2008 SP1中引入的,用于支持独立Shell应用程序的配置。在VisualStudio2010中,.pkgdef文件具有更广泛的作用,并且更容易集成到IDE和Shell中(集成和隔离)。

帖子什么是PkgDef?为什么?首次出现于Visual Studio博客.

]]>

A类.pkgdef文件是将应用程序配置信息封装为易于编辑、可分发和可部署的形式的方法。它是在Visual Studio 2008 SP1中引入的,用于支持隔离外壳应用程序的配置。在Visual Studio 2010中,.pkgdef文件具有更广泛的作用,并且更加集成到IDE和Shell中(集成和隔离)。本文将简要描述.pkgdef格式,并介绍在VS2010中使用它的场景。未来的帖子将更详细地介绍特定场景。

以下是.pkgdef文件的一部分,该文件在IDE中注册扩展管理器(作为VS包编写):

    形象

它看起来很像从注册表编辑器导出的.reg文件。有一个键差异:注册表项的根(例如,“HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\10.0”)已抽象为标记“$RootKey$”。这以及注册表项和路径的其他一些标记化值,允许给定的.pkgdef文件可用于多个应用程序并可移植到任何机器。

此示例还演示了为什么此格式最初称为“pkgdef”。.pkgdef文件可用于定义包的注册。既然这种格式用于许多其他注册和配置任务,就有人谈到要将名称和扩展名更改为更通用的格式。我们决定pkgdef的称谓和其他称谓一样好。像大多数计算机术语一样,名字似乎已经固定了。

让我们回头看看.pkgdef文件的第一个应用程序,在VS2008中配置独立Shell应用程序,看看它涉及到什么。独立Shell应用程序从至少四个.pkgdef文件中读取其配置数据。

文件 描述 位置
我的VSShellStub.pkgdef 在创建独立Shell应用程序项目时,由新建项目向导创建。配置应用程序pkgdef环境的主pkgdef。 旁边MyVSShellStub.exe
MyVSShellStub应用程序.pkgdef 在创建独立Shell应用程序项目时,由新建项目向导创建。包含用于配置和标记隔离外壳应用程序的基本值 在里面扩展在下面MyVSShellStub.exe
我的VsShellStub.pkgundef 也是由向导创建的。用于删除(或取消定义)作为独立Shell可再分发安装的一部分配置的包(请参阅BaseConfig.pkgdef) 旁边MyVSShellStub.exe
基本配置.pkgdef 隔离外壳可再分发安装的一部分。包含Shell核心功能的配置信息,例如编辑器和设计器以及IDE的其他部分 在里面外壳扩展\平台在C:\Program Files下\Microsoft Visual Studio X.0\Common7\IDE
我的包*.pkgdef 为作为独立Shell应用程序的一部分创建的任何VS包项目创建 在里面扩展在下面MyVSShellStub.exe(以及其他定义包定义搜索路径)

请注意,配置和注册信息来源于应用程序开发人员和Microsoft。所有这些值都必须合并到特定于应用程序的公共位置,以便Shell和应用程序中的包可以检索它们。在VS2008中,通过使用“/setup”开关(作为setup Custom Action)运行应用程序可执行文件,这是在安装Isolated Shell应用程序期间完成的。这导致Shell读取所有.pkgdef文件,并在HKEY_LOCAL_MACHINE下的注册表中为应用程序构建新的配置配置单元。在独立Shell应用程序的开发和测试周期中,使用“/ranu”(“以正常用户身份运行”)开关在HKEY_CURRENT_user下创建测试配置单元,以避免管理员访问注册表时出现问题。

    PkgDefIsoMerge包

Visual Studio 2010使.pkgdef加载和合并操作成为初始化序列用于Shell和IDE。它还将合并的目标(称为配置(或配置)缓存)定位在HKEY_CURRENT_USER下(位于应用程序的用户设置旁边,但带有“_config”后缀)。这样就无需在安装过程中运行合并,也无需在测试期间使用“/ranu”开关。它还支持一个附加场景:扩展管理器。

扩展管理器功能允许用户将扩展下载到Visual Studio IDE并集成它们,而无需运行安装程序。写为VS包的扩展必须使用.pkgdef文件在IDE中注册。安装扩展并启用后,只需重新启动IDE(通过解压缩其VSIX文件),IDE就会根据Visual Studio安装期间写入HKEY_LOCAL_MACHINE的值以及磁盘上.pkgdef文件中的值构建合并注册表配置单元。用户无需执行任何额外步骤或具有管理员权限。

    剪辑_图像003

您可能会注意到,对于隔离Shell应用程序,所有配置值都来自.pkgdef文件。但在VisualStudioIDE中,一些值来自HKEY_LOCAL_MACHINE。在后一种情况下,VS继续使用HKLM配置单元,以支持一些兼容性和服务场景。但我们计划尽可能继续从注册表中移出更多配置值。

.pkgdef文件是在VS2008中引入的,它允许以更模块化的方式部署VisualStudioShells的配置值。VS 2010中.pkgdef文件加载和合并的改进使.pkgdef文件的使用更加自动化,并支持无需安装Visual Studio扩展。

在以后的帖子中,我计划更详细地描述VS决定刷新配置缓存的方式和时间,为什么不加载.pkgdef文件,如何调试它,以及各种.pkgdef文件的用途。与此同时,亚伦·马滕(Aaron Marten)和德米特里·冈查伦科(Dmitry Goncharenko)已经写了几篇优秀的相关文章,其中一些我已经在上面提到过:

您可能还想阅读Visual Studio Shell简介或查看最近的VS 2010壳牌公司介绍.

剪辑_图像004

比尔·温伯格:开发人员,Visual Studio平台

Bill是微软的新手,但在IDE和垂直应用程序方面有多年的软件行业经验。对于Visual Studio 2010,他是PkgDef Management的主要贡献者。

帖子什么是PkgDef?为什么?首次出现于Visual Studio博客.

]]>
自定义Visual Studio 2010 https://devblogs.microsoft.com/visualstudio/customizing-visual-studio-2010/ 2009年12月14日星期一04:54:00+0000 https://blogs.msdn.microsoft.com/visualstudio/2009/12/14/customizing-visual-studio-2010/ 不喜欢默认的按钮位置?继续并移动它。要加快工作流,请在上下文菜单中添加方便的命令。要减少混乱,请删除您从未使用过的命令。是的,定制UI可能需要一点时间才能实现,

帖子自定义Visual Studio 2010首次出现于Visual Studio博客.

]]>
不喜欢默认的按钮位置?继续并移动它。要加快工作流,请在上下文菜单中添加方便的命令。要减少混乱,请删除您从未使用过的命令。是的,定制UI可能需要一点时间才能使其正确,但这样做将为您提供一个可以提高生产力的工作空间。

我录制了一段视频(分为两部分),演示了可以在VisualStudio2010中进行的一些不同的UI自定义。在第1部分中,我演示了如何创建一个新工具栏,在工具栏中添加/删除命令,更改工具栏停靠位置。在第2部分中,我展示了如何将命令添加到编辑器的上下文菜单中。

第1部分:http://ecn.channel9.msdn.com/o9/ch9/0/6/4/2/5/contextmenucustomization_ch9.wmv 

第2部分:http://ecn.channel9.msdn.com/o9/ch9/8/0/2/1/5/commandbarcustomization1_ch9.wmv

当我们切换到WPF shell时,我们必须重新实现大部分定制UI。我们的首要任务是为所有用户(例如那些依赖屏幕阅读器的用户)提供可访问的定制体验。不幸的是,我们在以前版本的Visual Studio中进行的自定义拖放交互重写成本很高,我们无法将其包括在内。我通过Microsoft Connect的错误报告收到了许多关于此的评论,我想向人们保证,我们将在未来的版本中探索改进。

苏珊·汉森–Visual Studio Shell团队项目经理
简短的个人简历:Suzanne于2006年加入微软,是Popfly团队的一员。她于2009年加入VisualStudioShell团队,负责包括命令栏和自定义的功能。 

帖子自定义Visual Studio 2010首次出现于Visual Studio博客.

]]>
开发者工具生态系统峰会视频现已推出! https://devblogs.microsoft.com/visualstudio/developer-tools-ecosystem-summit-videos-now-available/ 2009年12月10日星期四19:08:00+0000 https://blogs.msdn.microsoft.com/visualstudio/2009/12/10/developer-tools-ecosystem-summit-videos-now-available/ 2009年开发者工具生态系统峰会上的演讲录像刚刚发布在Channel 9上。有一些精彩的演讲,主题从VSX基础知识到扩展新编辑器,再到在Visual Studio Gallery上部署和共享您的扩展。 

帖子开发者工具生态系统峰会视频现已推出!首次出现于Visual Studio博客.

]]>
视频录制2009年开发人员工具生态系统峰会上的会谈刚刚在Channel 9上发布。有一些很棒的会谈,主题从VSX基础知识到扩展新编辑器,再到在Visual Studio库。看看他们,让我们知道你的想法!

韦斯顿·哈钦斯–Visual Studio Shell团队项目经理

帖子开发者工具生态系统峰会视频现已推出!首次出现于Visual Studio博客.

]]>
为Visual Studio 2010生成和发布扩展 https://devblogs.microsoft.com/visualstudio/building-and-publishing-an-extension-for-visual-studio-2010/ 2009年12月9日星期三08:37:00+0000 https://blogs.msdn.microsoft.com/visualstudio/2009/12/09/building-and-publishing-an-extension-for-visual-studio-2010/ Quan To–Visual Studio平台团队简介项目经理:Quan负责扩展管理器和Visual Studio SDK。Quan在微软工作了十多年,还曾在Tablet PC团队和Visual Studio部署团队工作过。

帖子为Visual Studio 2010生成和发布扩展首次出现于Visual Studio博客.

]]>
韦斯皮克

Quan收件人–Visual Studio平台团队项目经理
简短的个人简历:Quan负责扩展管理器和Visual Studio SDK。Quan在微软工作了十多年,还曾在Tablet PC团队和Visual Studio部署团队工作过。

与任何以前版本的Visual Studio相比,Visual Studio 2010支持更多现成的平台和语言。然而,VisualStudio最大的优势之一并不在于它附带什么,而是如何扩展它以满足您的个人开发需求。Visual Studio 2010公开了用于构建扩展的新API,并提供了用于发布、共享和查找新扩展的生态系统。

所以,让我们看看创建一个新的编辑器扩展到底有多容易。

在我们的场景中,我们将尝试创建一个简单的WPF视觉效果,每当有人在行首键入问号时,它就会出现在编辑器中。这个视觉效果,我们称之为装饰,将显示一个文本框,您可以使用它在Bing上进行搜索。

步骤1:创建编辑器扩展

一旦你有了Visual Studio SDK安装后,导航到“Visual Basic扩展性”节点。您会注意到SDK中安装了几个项目模板。

形象

我们提供了用于添加编辑器视觉效果或分类的模板、工具箱控件,甚至还提供了用于将扩展打包到VSIX中的模板。C#也可以使用相同的模板。

对于这个演示,我将创建一个编辑器文本装饰。每当字母“a”出现在编辑器中时,编辑器文本装饰模板中的默认代码都会在字母“a”周围放置一个框。

单击“确定”后,将创建模板。当我按F5调试扩展时,出现了一个VisualStudio的实验实例。这使我可以在一个单独的VS实例中尝试我的扩展,而不用担心破坏我当前的VS示例。

正如你所看到的,所有字母“a”的实例都有一个方框。这有多酷?无需键入任何代码,您就有了一个编辑器扩展!

形象

步骤2:创建装饰

接下来,在解决方案资源管理器中右键单击项目名称,选择“添加”,然后选择“新建项…”…

形象

在“添加新项”对话框中,选择WPF,选择“用户控件”,然后输入名称SearchBox.xaml

形象

在xaml设计器中复制并粘贴以下xaml代码。它要做的是创建一个带有文本框和按钮的简单搜索框。

形象

<用户控件 x: 类别=“搜索框”

             圣诞节="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

             xml文件:x="http://schemas.microsoft.com/winfx/2006/xaml"

             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 

             xml文件:d="http://schemas.microsoft.com/expression/blend/2008" 

             mc:可忽略=“d” 

             d: 设计高度="300" d: 设计宽度="300">

    <网格>

        <边框 高度="77" 宽度="295" 拐角半径="30" 边框画笔=“深蓝” 边框厚度="2" 背景=“浅蓝色”>

            <帆布>

                <按钮 帆布.左侧="197" 帆布.顶部="35" 内容=“开始” 高度="23" 姓名=“按钮1” 宽度=“75” />

                <文本框 帆布.左侧="18" 帆布.顶部="35" 高度="23" 姓名=“文本框1” 宽度="173" 选择不透明度="0" 不透明度="1" />

                <标签 帆布.左侧="15" 帆布.顶部="9" 内容=“输入您的搜索查询” 高度="26" 姓名=“标签1” 宽度="193" />

            </帆布>

        </边框>

 

    </网格>

</用户控件>

步骤3:将装饰添加到扩展中

接下来,打开TextAdorment.vb文件。导航到CreateVisuals功能。这是在字母“a”周围绘制方框的代码。我们想更改它,以便每次有人在编辑器中键入“?”时显示搜索框。

继续并删除CreateVisuals函数中的所有代码。接下来,将以下行添加到函数中:

如果行。范围。获取文本。包含("?")然后

    尺寸作为 新建搜索框

    如果(line.Extent.GetText.Length>1)然后

s.TextBox1.Text=行。范围。获取文本。修剪。基板(1)

     如果

帆布。SetTop(s,line.TextTop)

帆布。设置左侧,行.TextRight

_层。添加装饰品(装饰品定位行为.TextRelative,line.Extent,没有什么,s,没有什么)

 如果

附属的

正如您所见,代码非常简单。首先,我们检查当前行中是否有问号。如果有,请创建一个SearchBox实例。然后,我们将删除“?”之后的所有内容。我在简化事情,并假设问号是行中的第一个字符。然后代码将获取文本并将其显示在搜索框中。

接下来,设置框的顶部和左侧位置,然后使用新的编辑器API将其添加到装饰列表中。

只需几行简单的代码,您就构建了第一个编辑器扩展!

现在,要尝试一下,请按F5。

VS的实验实例运行后,继续创建控制台应用程序(或在编辑器中加载任何文件)。然后键入问号。您将看到您的扩展已加载到编辑器中。

形象

还有一个技巧我想传授。默认模板将装饰放在编辑器中文本的下方。下图显示了问题。

形象

要解决此问题,可以通过编辑AdornmentFactory.vb文件来指定装饰放置的z顺序。更改以下代码行

<订单(之后:=“选择”,之前:=“文本”)>

收件人

<订单(之后:=“文本”,之前:=“插入符号”)>

这将把您的装饰放在文本上方,但在插入符号下方。继续构建和部署以查看结果。

步骤4:编辑扩展的元数据

现在您已经构建了扩展,可以与世界共享它。首先要做的是更新扩展的元数据。您可以通过打开source.extension.vsixmanifest文件来实现这一点。出现了一个基本编辑器,您可以更新ID、名称、作者、版本,甚至可以选择扩展应该使用的VS版本。

注意:扩展仅适用于Integration Shell、Pro、Premium和Ultimate。扩展在Express Editions中不起作用。如果要为Express Editions构建扩展,则只能使用工具箱控件、项模板、项目模板和自定义起始页。

如果在另一个VSIX文件上有引用,清单设计器还允许您指定引用。因为我们的扩展没有任何依赖项,所以暂时将其留空。

更新元数据后,请重新构建。

形象

第五步:分享你的分机

重建后,查看输出文件夹(bindebug或binrelease)。您可以通过在解决方案资源管理器中右键单击项目并选择“在Windows资源管理器中打开文件夹”来访问项目文件夹。然后打开箱子[输出]。文件夹将包含。VSIX文件。这是您可以用来上传到VS Gallery的文件,也是其他人将在Extension Manager中使用的文件。

若要上载扩展,请按照Visual Studio库中的简单向导进行操作。

1.将浏览器导航至www.visualstudioaller.com

2.单击上传

3.使用live id登录

4.对于扩展类型,选择Tool,因为我们上载的是Editor扩展,而不是控件或项目/项模板。点击下一步

5.选择“我想上传我的工具”,然后点击下一个

6.浏览到VSIX位置,选择文件,然后单击next。现在将上传VSIX,并在步骤3的左侧解析和插入元数据。

7.验证左侧的元数据是否正确。然后在右侧,为您的扩展选择一个类别,添加任何标签,然后选择一个成本类别。

8.您还可以向扩展页面添加丰富的HTML。我们创建了四个很酷的模板,您可以将其复制/粘贴到HTML控件中,以使页面真正脱颖而出。模板位于:

http://visualstudiogallery.msdn.microsoft.com/templates/template1.html

http://visualstudioaller.msdn.microsoft.com/templates/template2.html

http://visualstudiogallery.msdn.microsoft.com/templates/template3.html

http://visualstudiogallery.msdn.microsoft.com/templates/template4.html

9.一旦你对自己的贡献感到满意,请单击“我同意”,然后单击创建贡献。

形象

发布扩展的最后一步是在预览页面上单击“发布”。

形象

单击“发布”后,任何人都可以下载和安装该扩展。

(请注意,这意味着你的扩展会立即在图库中直播!如果你只是尝试一下,请尽量避免在图库上发布测试扩展,否则你可能最终会得到社区的不良评论和评级)。

第六步:使用分机

要验证扩展是否可用,请加载Visual Studio,然后转到工具/扩展管理器。然后上网搜索你的分机名。

形象

这有多容易?🙂

如果您想了解有关建筑扩展的更多信息,请查看以下链接:

VS可扩展性开发中心

VS 2010扩展性示例

VS 2010 SDK文档

帖子为Visual Studio 2010生成和发布扩展首次出现于Visual Studio博客.

]]>
VS2010中VS包和VSIX扩展的引导 https://devblogs.microsoft.com/visualstudio/bootstrapping-of-vs-packages-and-v6-extensions-in-vs2010/ 2009年12月7日星期一08:05:00+0000 https://blogs.msdn.microsoft.com/visualstudio/2009/12/07/bootstrapping-of-vs-packages-and-v6-extensions-in-vs2010/ Dmitry Goncharenko:Visual Studio平台开发人员
简介:Dmitry在微软工作了大约10年,致力于Visual Studio的几个领域。在Visual Studio 2010中,他帮助设计和实现了PkgDef管理、VSIX技术以及MEF组件的托管。

帖子VS2010中VS包和VSIX扩展的引导首次出现于Visual Studio博客.

]]>
德米特里德米特里·贡查连科:Visual Studio平台开发人员

短生物:Dmitry在Microsoft工作了大约10年,致力于Visual Studio的多个领域。在Visual Studio 2010中,他帮助设计和实现了PkgDef管理、VSIX技术以及MEF组件的托管。

Visual Studio 2010使用两种技术来实现更简单要部署VS扩展:

  1. VS包不需要将注册信息直接写入注册表。他们可以在中提供所有注册信息包装定义而不是文件。
  2. VSIX公司是可用于部署VS 2010扩展的新部署模型。它完全集成到IDE中,并提供了一个简单的模型,用于将扩展发布到Visual Studio库.

考虑到VS2010中可用的不同(以前支持的和新的)扩展类型,IDE可能不清楚如何发现和引导它们。这篇文章试图为VS平台的这一领域提供一些启示。

Visual Studio进程通过执行devenv.exe软件,位于<VsInstallRootFolder>Common7IDE中。在执行了一些关键步骤,如命令行解析和Watson集成初始化(管理崩溃/挂起转储的技术)之后,devenv.exe初始化PkgDef管理逻辑。[请注意,Express VS SKU是使用不同的可执行文件启动的,但在内部,它们的逻辑与devenv.exe非常相似。]

PkgDef管理从文件中提取其初始化参数开发.pkgdef,位于devenv.exe(也称为“主PkgDef”). 此文件定义了VS应在其中查找其他PkgDef文件和已安装的VSIX扩展的位置。

形象

以下是示例devenv.pkgdef文件的内容:

形象

下表描述了主PkgDef文件中通常包含的一些变量:

变量

描述

注册表根

HKEY_CURRENT_USER下的根注册表位置,其中存储用户设置和配置缓存。

包定义搜索路径

搜索PkgDef文件的文件夹列表。该列表还可以包括特定的PkgDef文件。

应用程序扩展文件夹

部署计算机范围VSIX的根文件夹。

用户扩展根文件夹

根文件夹,在该根文件夹下部署特定于用户的VSIX。

PkgDef管理的主要工作是定位、加载PkgDef-文件,并将其与位于HKLMSOFTWAREMicrosoftVisualStudio10.0(或HKLMWow6432节点软件MicrosoftVisualStudio10.064位操作系统上)。中列出的文件夹包定义搜索路径递归扫描,并加载找到的PkgDef文件。然后,PkgDef管理从下的扩展文件夹开始递归扫描用户扩展根文件夹并只加载那些属于扩展名(在中标记为“Enabled”)的PkgDef文件扩展管理器对话框。

形象

加载并合并所有Visual Studio配置数据后,将其缓存在HKCUSoftwareMicrosoftVisualStudio10.0_Config注册表根下。由于此缓存可以随时更新永远不要编辑它。如果您需要修改配置数据(例如注册VS包),请将PkgDef文件添加到扩展名中。[永远不要将VS注册表路径硬编码到代码中。使用外壳设置管理器来自Microsoft的类。VisualStudio。Shell.10.0.dll使用VS设置和配置数据。]

配置数据准备好后,Visual Studio的其余部分可以使用它来初始化其核心服务并构建UI(主框架、菜单、命令栏、工具窗口等)。这一步值得单独讨论,但它超出了本文的范围。IDE开始接收用户输入之前的最后一步是初始化主消息循环。SOleComponent管理器该服务负责管理VS消息泵,它也应该拥有自己的博客帖子(甚至很少)。

那么,所有这些是如何与扩展管理器和VSIX扩展联系在一起的呢?在某个时刻SVs扩展管理器服务将被调用(这取决于场景,可以是VS响应之前或之后)。该服务在主PkgDef文件中定义的ApplicationExtensionsFolder文件夹下递归扫描扩展.vsixmanifest文件夹。ApplicationExtensionsFolder下找到的所有VSIX扩展都可用于VS。

主PkgDef文件中的UserExtensionsRootFolder指定安装每用户VSIX的路径(通过扩展管理器对话框或独立VSIX安装程序)。仅当满足以下条件(Beta 2版本)时,才会加载安装到这些“每用户”文件夹中的扩展(VSIX):

  • 仅当用户不是计算机管理员时才加载它们,或
  • 在工具|选项中选中下面突出显示的选项。

形象

服务只考虑在Extension Manager对话框中标记为“Enabled”的VSIX,并将其提供给VS。

启用或禁用VSIX后,可能需要重新启动VS才能使此更改生效。对于包含PkgDef文件的VSIX来说,这是正确的,因为如上所述,对PkgDef文件的任何更改都只在VS启动期间处理。

最后列出VS启动问题的故障排除选项:

  • 运行devenv.exe/log[<可选日志文件路径>]用于生成VS启动活动的详细日志。如果未指定日志文件路径,则默认情况下会将日志写入%APPDATA%MicrosoftVisualStudio10.0ActivityLog.xml。在web浏览器中打开日志,查找任何“黄色”或“红色”条目,以快速找到问题点。
  • 如果安装新的VSIX后VS无法启动或某些功能损坏,则运行devenv.exe/安全模式在只启用“安全”扩展集的情况下重新启动VS。然后转到“扩展管理器”对话框并禁用最近安装的扩展。
  • 如果不清楚是哪个VSIX导致了问题,请运行devenv.exe软件/重置用户数据以使VS达到已知的初始状态(就像它刚刚安装一样)。

德米特里。

帖子VS2010中VS包和VSIX扩展的引导首次出现于Visual Studio博客.

]]>
即将推出的VS平台MSDN网络广播 https://devblogs.microsoft.com/visualstudio/upcoming-vs-platform-msdn-webcast(https://devblogs.microsoft.com/visualstudio/upcoming-vs-platform-msdn-webcast)/ 2009年12月1日星期二09:20:00+0000 https://blogs.msdn.microsoft.com/visualstudio/2009/12/01/upcoming-vs-platform-msdn-网络广播/ [更新:Visual Studio 2010扩展性简介已移至12/16@10 a.m.请更新您的日历以反映此更改。]
我想宣布两个即将到来的MSDN网络广播,它们将由Visual Studio平台PM提供,

帖子即将推出的VS平台MSDN网络广播首次出现于Visual Studio博客.

]]>
[更新:Visual Studio 2010扩展性简介已移至12/16@10 a.m.请更新您的日历以反映此更改。] 

我想宣布两个即将到来的MSDN网络广播这将由Visual Studio Platform PM、Weston Hutchins和Chris Granger进行演示。这两个都是介绍性的演讲,重点是扩展Visual Studio 2010。我们将展示一些幻灯片,展示一些很酷的演示,并在最后回答一些问答,因此请单击下面的“与会者注册”链接加入我们!

我想要着色:基于场景的新编辑器。

什么时候?:2009年12月9日星期三上午10:00太平洋时间(美国和加拿大)
持续时间:60分钟
节目主持人:Chris Granger,程序经理,VS编辑
与会者注册:http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032434989&Culture=en-美国

虽然你们中的许多人可能知道VisualStudio2010附带了一个新的基于WPF的可扩展编辑器,但你们知道为什么你们应该在意吗?我们将通过检查一系列常见场景来了解新编辑器,这些场景展示了您可以使用编辑器扩展做什么。你可以把这当成你的速成课程;您将学习一些概念,看到一些代码,然后带着充满可能性的头脑离开。

Visual Studio 2010扩展性简介

什么时候?:2009年12月16日星期三上午10:00太平洋时间(美国和加拿大)
持续时间:60分钟
节目主持人:韦斯顿·哈钦斯,VS壳牌公司项目经理
与会者注册:http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032434987&Culture=en-美国

想要自定义和增强开箱即用的Microsoft Visual Studio 2010开发环境吗?想构建自己的Windows Presentation Foundation(WPF)工具窗口,但不知道如何开始?在本网络广播中,我们将介绍VisualStudio扩展性的基本知识,并向您展示如何利用VisualStudio中的众多扩展选项。此外,我们还讨论了VisualStudio2010中新的扩展性增强功能,以及如何在应用程序中利用这些增强功能。这是一个有趣的会议,有很多演示,我们有一些东西可以为Visual Studio初学者提供给经验丰富的老手。

帖子即将推出的VS平台MSDN网络广播首次出现于Visual Studio博客.

]]>
Visual Studio扩展性视频 https://devblogs.microsoft.com/visualstudio/visual-studio-extensibility-videos/ 2009年12月1日星期二08:49:34+0000 https://blogs.msdn.microsoft.com/visualstudio/2009/12/01/visual-studio-extensibility-videos/ Quan To是Visual Studio平台团队的程序经理。Quan负责扩展管理器和Visual Studio SDK。Quan在微软工作了十多年,还曾在Tablet PC团队和Visual Studio部署团队工作过。

帖子Visual Studio扩展性视频首次出现于Visual Studio博客.

]]>
量子 Quan To是Visual Studio平台团队的程序经理。Quan负责扩展管理器和Visual Studio SDK。Quan在微软工作了十多年,还曾在Tablet PC团队和Visual Studio部署团队工作过。

大家好,

我想发布几个我们刚刚发布给社区的视频。上周我花了一些时间制作了一个关于发布您的扩展到Visual Studio库。该视频将向您介绍共享扩展时的预期效果,并向您展示“多媒体资料”中的预期效果。您可以查看视频在这里.

此外,我们的一位C#MVP和Visual Studio Extensibility内部人士在柏林的EMEA技术教育大会上接受了采访。Istvan Novak对Visual Studio 2010中的可扩展性、部署扩展和新的VSIX格式进行了坦率的讨论在这里.

对于那些刚开始的人来说,这些是很棒的介绍视频。未来,我们计划围绕创建独立Shell应用程序和在VS2010中创建扩展创建更多视频。敬请关注!🙂

-权

帖子Visual Studio扩展性视频首次出现于Visual Studio博客.

]]>