<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Aaron Marten : Extension Manager</title><link>http://blogs.msdn.com/aaronmar/archive/tags/Extension+Manager/default.aspx</link><description>Tags: Extension Manager</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>All Your RegKeys Are Belong To Us</title><link>http://blogs.msdn.com/aaronmar/archive/2009/11/06/all-your-regkeys-are-belong-to-us.aspx</link><pubDate>Fri, 06 Nov 2009 17:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9918699</guid><dc:creator>aaronmar</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/aaronmar/comments/9918699.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aaronmar/commentrss.aspx?PostID=9918699</wfw:commentRss><wfw:comment>http://blogs.msdn.com/aaronmar/rsscomments.aspx?PostID=9918699</wfw:comment><description>&lt;p&gt;I’ve been in many discussions lately with various folks about Visual Studio 2010 extensibility. Inevitably, someone suggests a solution to some problem involving changing/adding/deleting a registry key/value for an extension. If you need to do this, just remember this one rule:&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h2&gt;Do not ever edit a key that ends in “_Config”&lt;/h2&gt;  &lt;h4&gt;HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0&lt;/h4&gt;  &lt;p&gt;This key contains your user-specific settings and works the same as it has in prior VS releases. This could be things like pointers to your default project locations, window layout data, etc… In general it is OK to make tweaks to this key. The worst thing that could happen is that you end up corrupting your user settings. Deleting the key will cause the first-launch “Please choose a profile” dialog to come up the next time you launch Visual Studio.&lt;/p&gt;  &lt;h4&gt;HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0_Config&lt;/h4&gt;  &lt;p&gt;If you examine the contents of this key, you’ll see that it contains the configuration data for VS 2010. This includes things like package registration, project system registration, editor factory registration, etc… You may also notice that the contents are very similar to &lt;b&gt;HKLM\Software\Microsoft\VisualStudio\10.0&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;You can think of the _Config key as a &lt;b&gt;volatile cache&lt;/b&gt; of VS’s configuration data for a particular user. It is simply the combination of &lt;b&gt;HKLM\Software\Microsoft\VisualStudio\10.0&lt;/b&gt; and any pkgdef files coming from VS extensions (either from Common7\IDE\Extensions or %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions).&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;a mce_href="http://blogs.msdn.com/blogfiles/aaronmar/WindowsLiveWriter/AllYourKeysAreBelongToUs_9F50/PkgDef-Normal%5B1%5D_2.png" href="http://blogs.msdn.com/blogfiles/aaronmar/WindowsLiveWriter/AllYourKeysAreBelongToUs_9F50/PkgDef-Normal%5B1%5D_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PkgDef-Normal[1]" border="0" alt="PkgDef-Normal[1]" mce_src="http://blogs.msdn.com/blogfiles/aaronmar/WindowsLiveWriter/AllYourKeysAreBelongToUs_9F50/PkgDef-Normal%5B1%5D_thumb.png" width="392" height="194" src="http://blogs.msdn.com/blogfiles/aaronmar/WindowsLiveWriter/AllYourKeysAreBelongToUs_9F50/PkgDef-Normal%5B1%5D_thumb.png"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;a mce_href="http://blogs.msdn.com/aaronmar/archive/2009/06/05/pkgdef-and-the-experimental-instance-in-vs-2010.aspx" href="http://blogs.msdn.com/aaronmar/archive/2009/06/05/pkgdef-and-the-experimental-instance-in-vs-2010.aspx"&gt;(A previous post discussed how the Experimental Instance works.)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you edit a key in 10.0_Config, Visual Studio &lt;b&gt;will (quite possibly) delete it on startup&lt;/b&gt;.&lt;/p&gt;  &lt;h2&gt;If you need to change a value, always do one of the following:&lt;/h2&gt;  &lt;ol&gt;   &lt;li&gt;Edit the value under &lt;b&gt;HKLM\Software\Microsoft\VisualStudio\10.0&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;Edit (or add) a pkgdef file for the extension in question (For managed VSPackages, this is likely editing/adding a &lt;a mce_href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.registrationattribute(VS.100).aspx" href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.registrationattribute(VS.100).aspx"&gt;RegistrationAttribute&lt;/a&gt; in your code). &lt;/li&gt; &lt;/ol&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9918699" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+SDK/default.aspx">Visual Studio SDK</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/VSX/default.aspx">VSX</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+Shell/default.aspx">Visual Studio Shell</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Extension+Manager/default.aspx">Extension Manager</category></item><item><title>Pkgdef and the Experimental Instance in VS 2010</title><link>http://blogs.msdn.com/aaronmar/archive/2009/06/05/pkgdef-and-the-experimental-instance-in-vs-2010.aspx</link><pubDate>Fri, 05 Jun 2009 18:42:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9701495</guid><dc:creator>aaronmar</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/aaronmar/comments/9701495.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aaronmar/commentrss.aspx?PostID=9701495</wfw:commentRss><wfw:comment>http://blogs.msdn.com/aaronmar/rsscomments.aspx?PostID=9701495</wfw:comment><description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;***Disclaimer: This information is about Visual Studio 2010 Beta 1 only. The following may not be accurate for future releases.***&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;One of the new features we introduced with the Visual Studio 2008 Isolated Shell was the &lt;a href="http://msdn.microsoft.com/en-us/library/cc138553.aspx"&gt;concept of a pkgdef file&lt;/a&gt;. Pkgdef is essentially a REG file with tokenization. For example, you could put $RootFolder$ in your pkgdef file to refer to the root directory of your isolated shell application. At runtime, these files are consumed by the VS Isolated Shell runtime and merged into the registry (with the tokens replaced by literal values). The registry merely acts as a cache of the information in your pkgdef files.&lt;/p&gt;  &lt;p&gt;In Visual Studio 2010, the pkgdef model has been integrated into Visual Studio itself. As such, the manner in which your packages are built and (locally) deployed when developing with the Visual Studio 2010 SDK Beta 1 is significantly different (although the “F5 experience” should be the same).&lt;/p&gt;  &lt;h3&gt;Visual Studio Startup / Pkgdef Merge&lt;/h3&gt;  &lt;p&gt;On the very first launch of Visual Studio, the first thing that needs to happen is merging the pkgdef files into the registry. You can think of the destination registry key where these go as merely a cache used for performance. The fact that it’s a registry key is somewhat of an implementation detail. Here’s a graphical view of what happens:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/aaronmar/WindowsLiveWriter/PkgdefandtheExperimentalInstanceinVS2010_7DCE/PkgDef-Normal.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PkgDef-Normal" border="0" alt="PkgDef-Normal" src="http://blogs.msdn.com/blogfiles/aaronmar/WindowsLiveWriter/PkgdefandtheExperimentalInstanceinVS2010_7DCE/PkgDef-Normal_thumb.png" width="472" height="234" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Note in the above diagram that the cache location is under KHEY_CURRENT_USER, and that the key name is 10.0_Config. If you view this key in regedit, you’ll notice a sibling key named simply “10.0”. This 10.0 key holds your per-user &lt;strong&gt;settings&lt;/strong&gt; (things like your personal preferences for fonts, window position, and other options).&lt;/p&gt;  &lt;p&gt;In comparison to &lt;a href="http://blogs.msdn.com/aaronmar/archive/2007/06/06/developing-packages-as-a-normal-user-i-e.aspx"&gt;Visual Studio 2008 and running with the /ranu switch&lt;/a&gt;, these 10.0 and 10.0_Config keys map to the UserSettings and Configuration keys under HKCU\Software\Microsoft\VisualStudio\9.0 respectively.&lt;/p&gt;  &lt;p&gt;It is a completely safe operation to delete the &lt;strong&gt;&lt;u&gt;HKCU\…\10.0_Config &lt;/u&gt;&lt;/strong&gt;key since Visual Studio will re-create it on the next launch.&lt;/p&gt;  &lt;h3&gt;“Experimental Instance” Startup / Pkgdef Merge&lt;/h3&gt;  &lt;p&gt;A very similar process happens when you run “devenv /rootsuffix Exp”. Instead of merging the pkgdef information to “10.0_Config”, everything is merged to “10.0Exp_Config”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/aaronmar/WindowsLiveWriter/PkgdefandtheExperimentalInstanceinVS2010_7DCE/PkgDef-Experimental.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PkgDef-Experimental" border="0" alt="PkgDef-Experimental" src="http://blogs.msdn.com/blogfiles/aaronmar/WindowsLiveWriter/PkgdefandtheExperimentalInstanceinVS2010_7DCE/PkgDef-Experimental_thumb.png" width="480" height="232" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;What are the “Pkgdef Files on Disk” locations?&lt;/h3&gt;  &lt;p&gt;There is a file called “devenv.pkgdef” in your VS installation folder (under Common7\IDE) that defines where pkgdef files are picked up from. First, pkgdef files are picked up from a few sub-folders under Common7\IDE. Secondly, you’ll notice that we scan a folder called “$AppDataLocalFolder$\Extensions”. On my user account this maps to:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;C:\Users\aaronm\AppData\Local\Microsoft\VisualStudio\10.0\Extensions&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;When running with “/rootsuffix Exp” this would be:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;C:\Users\aaronm\AppData\Local\Microsoft\VisualStudio\10.0&lt;strong&gt;Exp&lt;/strong&gt;\Extensions&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;In order for a pkgdef flie in the per-user location to be picked up by VS, it must also be declared as owned by a VSIX-based extension and enabled in HKCU\Microsoft\VisualStudio\10.0\ExtensionManager\EnabledExtensions. When you build a VSPackage or MEF component from one of the project templates in the Visual Studio 2010 Beta 1 SDK, this is all happening for you during the build.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9701495" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+SDK/default.aspx">Visual Studio SDK</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/VSX/default.aspx">VSX</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+Shell/default.aspx">Visual Studio Shell</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Extension+Manager/default.aspx">Extension Manager</category></item><item><title>Visual Studio 2010 SDK Beta 1</title><link>http://blogs.msdn.com/aaronmar/archive/2009/05/21/visual-studio-2010-sdk-beta-1.aspx</link><pubDate>Thu, 21 May 2009 20:04:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9634009</guid><dc:creator>aaronmar</dc:creator><slash:comments>15</slash:comments><comments>http://blogs.msdn.com/aaronmar/comments/9634009.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aaronmar/commentrss.aspx?PostID=9634009</wfw:commentRss><wfw:comment>http://blogs.msdn.com/aaronmar/rsscomments.aspx?PostID=9634009</wfw:comment><description>&lt;p&gt;The &lt;a href="http://go.microsoft.com/fwlink/?LinkId=147422"&gt;Visual Studio 2010 SDK Beta 1&lt;/a&gt; is now available for download. Be sure to check out the latest &lt;a href="http://blogs.msdn.com/quanto/archive/2009/05/13/visual-studio-2010-sdk-beta-1-readme.aspx"&gt;supplemental readme&lt;/a&gt; as you’re likely to encounter some of these issues in using the SDK.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9634009" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+SDK/default.aspx">Visual Studio SDK</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/VSX/default.aspx">VSX</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+Shell/default.aspx">Visual Studio Shell</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Extension+Manager/default.aspx">Extension Manager</category></item><item><title>Visual Studio 2010 Beta 1 Shipped</title><link>http://blogs.msdn.com/aaronmar/archive/2009/05/18/visual-studio-2010-beta-1-shipped.aspx</link><pubDate>Mon, 18 May 2009 19:17:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9625479</guid><dc:creator>aaronmar</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aaronmar/comments/9625479.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aaronmar/commentrss.aspx?PostID=9625479</wfw:commentRss><wfw:comment>http://blogs.msdn.com/aaronmar/rsscomments.aspx?PostID=9625479</wfw:comment><description>&lt;p&gt;Somasegar (VP in charge of DevDiv) has &lt;a href="http://blogs.msdn.com/somasegar/archive/2009/05/18/visual-studio-2010-and-net-fx-4-beta-1-ships.aspx"&gt;just blogged&lt;/a&gt; that &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;Visual Studio 2010 Beta 1&lt;/a&gt; has been released to the web. It will be available on MSDN in the next few hours, and available as a public download on Wednesday. (We will be releasing a matching Visual Studio SDK soon also.)&lt;/p&gt;  &lt;p&gt;Beta 1 is the first time that you’ll be able to get a glimpse at the new Visual Studio &lt;a href="http://blogs.msdn.com/aaronmar/archive/2009/02/24/update-on-extension-manager-and-visual-studio-2010.aspx"&gt;Extension&lt;/a&gt; &lt;a href="http://blogs.msdn.com/aaronmar/archive/2008/11/04/extension-manager.aspx"&gt;Manager&lt;/a&gt; as well as the other new features coming (WPF based Shell/Editor, MEF-based editor extensibility, Architecture Explorer, etc…).&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9625479" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+SDK/default.aspx">Visual Studio SDK</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Extension+Manager/default.aspx">Extension Manager</category></item><item><title>Update on Extension Manager and Visual Studio 2010</title><link>http://blogs.msdn.com/aaronmar/archive/2009/02/24/update-on-extension-manager-and-visual-studio-2010.aspx</link><pubDate>Tue, 24 Feb 2009 23:38:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9443140</guid><dc:creator>aaronmar</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/aaronmar/comments/9443140.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aaronmar/commentrss.aspx?PostID=9443140</wfw:commentRss><wfw:comment>http://blogs.msdn.com/aaronmar/rsscomments.aspx?PostID=9443140</wfw:comment><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/jasonz/"&gt;Jason Zander&lt;/a&gt;, the General Manager for Visual Studio, has just announced some more details (with screenshots) on &lt;a href="http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx"&gt;the new look and feel for Visual Studio 2010&lt;/a&gt; (which relies heavily on WPF).&lt;/p&gt;  &lt;p&gt;In the same post, he also includes a screenshot of the new Visual Studio Extension Manager (&lt;a href="http://blogs.msdn.com/aaronmar/archive/2008/11/04/extension-manager.aspx"&gt;mentioned previously&lt;/a&gt;):    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/blogfiles/jasonz/WindowsLiveWriter/AnewlookforVisualStudio2010_CF66/image_7.png" /&gt; &lt;/p&gt;  &lt;p&gt;You’ll be able to find more details about the Extension Manager here as we get closer to shipping VS 2010 Beta 1 (no dates announced yet). Stay tuned!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9443140" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aaronmar/archive/tags/VSX/default.aspx">VSX</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Extension+Manager/default.aspx">Extension Manager</category></item><item><title>Extension Manager</title><link>http://blogs.msdn.com/aaronmar/archive/2008/11/04/extension-manager.aspx</link><pubDate>Tue, 04 Nov 2008 16:40:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9039361</guid><dc:creator>aaronmar</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/aaronmar/comments/9039361.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aaronmar/commentrss.aspx?PostID=9039361</wfw:commentRss><wfw:comment>http://blogs.msdn.com/aaronmar/rsscomments.aspx?PostID=9039361</wfw:comment><description>&lt;p&gt;One of the new features we plan on shipping for VS 2010 that I've been heads down on for the past few months is the &amp;quot;Extension Manager&amp;quot;. I'll be posting more details about it here over the next several months.&lt;/p&gt;  &lt;p&gt;For the meantime, you can hear more about it (and see some very early mockups) in &lt;a href="http://channel9.msdn.com/pdc2008/TL32/"&gt;Dr. Tim Wagner's PDC talk&lt;/a&gt;. The part about the Extension Manager starts around 50:20. The earlier parts of the talk discuss some of the other new features that we're working on, including the new MEF-based editor extensibility model, &lt;a href="http://www.visualstudiogallery.com/"&gt;the VS Gallery&lt;/a&gt;, and a general introduction to VS extensibility.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9039361" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+SDK/default.aspx">Visual Studio SDK</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Automation/default.aspx">Automation</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/VSX/default.aspx">VSX</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+Shell/default.aspx">Visual Studio Shell</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Extension+Manager/default.aspx">Extension Manager</category></item></channel></rss>