<feed version="0.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://purl.org/atom/ns#" xml:lang="en-US"><title>Pablo Galiano</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/default.aspx" /><tagline type="text/html">ISerializable thoughts</tagline><id>http://www.clariusconsulting.net/blogs/pga/default.aspx</id><author><url>http://www.clariusconsulting.net/blogs/pga/default.aspx</url></author><generator url="http://communityserver.org" version="1.0.1.50214">Community Server</generator><modified>2008-10-06T07:50:40Z</modified><entry><title>VSIX deployment</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/03/VSIXdeployment.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:157205</id><created>2009-07-03T08:36:44Z</created><content type="text/html" mode="escaped">&lt;p&gt;&lt;strong&gt;&lt;u&gt;***Disclaimer: This information applies to Visual Studio 2010 Beta 1 only.***&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/quanto"&gt;Quan&lt;/a&gt; already wrote a great &lt;a href="http://blogs.msdn.com/quanto/archive/2009/05/26/what-is-a-vsix.aspx"&gt;post&lt;/a&gt; that explain what VSIX is. In this post I will covered the details of VSIX deployment.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;When we double click a VSIX file from windows explorer the following dialog is shown:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.clariusconsulting.net/images/blogs/pga/616e0b162947_B859/image.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" alt="image" src="http://www.clariusconsulting.net/images/blogs/pga/616e0b162947_B859/image_thumb.png"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;This is because the .vsix extension is registered within the windows shell. As part of that registration there is also information about which program to launch when we double click a VSIX file. And that executable is the VSIXInstaller and it is located under %VS10_Install_Dir%\Common7\IDE\VSIXInstaller.exe&lt;/p&gt; &lt;p&gt;The VSIXInstaller tool uses the &lt;i&gt;Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager &lt;/i&gt;service to install the extension, which perform the following steps:  &lt;ul&gt; &lt;li&gt;It unzips the content of the VSIX file under %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\%Extension_Author%\%Extension_Name%\%Extension_Version%.  &lt;li&gt;It adds registry information under HKCU\Software\Microsoft\VisualStudio\10.0\ExtensionManager\EnabledExtensions to enable the extension in Visual Studio.&amp;nbsp; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Depending on the extension content type a Visual Studio restart will be needed. This is the case for MEFComponent and VSPackage content types.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Stay tuned,&lt;/p&gt; &lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=157205" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=157205</wfw:commentRss></entry><entry><title>VS10 beta 1- No more PLKs</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/03/157174.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:157174</id><created>2009-07-03T07:05:12Z</created><content type="text/html" mode="escaped">&lt;p&gt;&lt;strong&gt;&lt;u&gt;***Disclaimer: This information applies to Visual Studio 2010 Beta 1 only.***&lt;/u&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Visual Studio 2010 no longer requires you to create a &lt;a href="http://msdn.microsoft.com/en-us/library/bb165795.aspx"&gt;Package Load Key (PLK)&lt;/a&gt; for deploying a VSPackage extension.&lt;/p&gt; &lt;p&gt;For Isolated Shell applications the &lt;a href="http://msdn.microsoft.com/en-us/library/bb932503.aspx"&gt;Shell Load Key (SLK)&lt;/a&gt; requirement has also been removed.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Great news and less pain debugging PLKS!!!&lt;/p&gt; &lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=157174" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=157174</wfw:commentRss></entry><entry><title>VS10 beta 1 - No more Devenv /Setup</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/03/157173.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:157173</id><created>2009-07-03T07:04:17Z</created><content type="text/html" mode="escaped">&lt;p&gt;&lt;strong&gt;&lt;u&gt;***Disclaimer: This information applies to Visual Studio 2010 Beta 1 only.***&lt;/u&gt;&lt;/strong&gt;  &lt;p&gt;&amp;nbsp; &lt;p&gt;Visual Studio look and monitors the following folders for pkgdef files:  &lt;blockquote&gt; &lt;p&gt;%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions  &lt;p&gt;%VS10_Install_Dir%\Common7\IDE\Extensions  &lt;p&gt;%VS10_Install_Dir%\Common7\IDE\CommonExtensions&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;These locations are defined in the %VS10_Install_Dir%\Common7\IDE\devenv.pkgdef file.&lt;/p&gt; &lt;p&gt;Every time that Visual Studio starts, it looks for pkgdef files in these folders and merges them in the registry automatically. The last thing that happens is a devenv / setup (if needed). All of this is being done behind the scenes and it is completely transparent to the user.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=157173" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=157173</wfw:commentRss></entry><entry><title>VS10 beta 1 - User extensions versus Trusted extensions</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/03/157304.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:157304</id><created>2009-07-03T11:57:11Z</created><content type="text/html" mode="escaped">
		&lt;p&gt;
				&lt;strong&gt;
						&lt;u&gt;***Disclaimer: This information applies to Visual Studio 2010 Beta 1 only.***&lt;/u&gt;
				&lt;/strong&gt;
		&lt;/p&gt;
		&lt;p&gt; &lt;/p&gt;
		&lt;p&gt;This post applies to the following Visual Studio 10 Beta 1 extensions:  &lt;/p&gt;
		&lt;ol&gt;
				&lt;li&gt;MEF component  &lt;/li&gt;
				&lt;li&gt;VSPackage&lt;/li&gt;
		&lt;/ol&gt;
		&lt;p&gt; &lt;/p&gt;
		&lt;p&gt;Visual Studio looks for extensions in the following folders:  &lt;/p&gt;
		&lt;ul&gt;
				&lt;li&gt;%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions &lt;strong&gt;(user extension)&lt;/strong&gt;&lt;/li&gt;
				&lt;li&gt;%VS10_Install_Dir%\Common7\IDE\Extensions  &lt;strong&gt;(VS trusted extension)&lt;/strong&gt;&lt;/li&gt;
				&lt;li&gt;%VS10_Install_Dir%\Common7\IDE\CommonExtensions &lt;strong&gt;(VS trusted extension)&lt;/strong&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;p&gt; &lt;/p&gt;
		&lt;p&gt;Depending on where we deploy our extension, it will be an user extension or a VS trusted extension.&lt;/p&gt;
		&lt;p&gt;
				&lt;em&gt;User extension&lt;/em&gt;
		&lt;/p&gt;
		&lt;ul&gt;
				&lt;li&gt;It can be enabled / uninstalled from the extension manager window &lt;/li&gt;
		&lt;/ul&gt;
		&lt;p&gt;
				&lt;a href="http://www.clariusconsulting.net/images/blogs/pga/0ce119f277a3_EDF5/image.png"&gt;
						&lt;img style="border-width: 0px; display: inline;" title="image" alt="image" src="/images/blogs/pga/0ce119f277a3_EDF5/image_thumb.png" /&gt;
				&lt;/a&gt;
		&lt;/p&gt;
		&lt;ul&gt;
				&lt;li&gt;
						&lt;strong&gt;Visual Studio will only load the extension if it is enabled in the extension manager&lt;/strong&gt;
						&lt;ul&gt;
								&lt;li&gt;
										&lt;strong&gt;HKCU\Microsoft\VisualStudio\10.0\ExtensionManager\EnabledExtensions&lt;/strong&gt;
								&lt;/li&gt;
						&lt;/ul&gt;
				&lt;/li&gt;
		&lt;/ul&gt;
		&lt;p&gt;
				&lt;em&gt;VS trusted extension&lt;/em&gt;
		&lt;/p&gt;
		&lt;ul&gt;
				&lt;li&gt;It cannot be enabled / uninstalled from the extension manager window &lt;/li&gt;
		&lt;/ul&gt;
		&lt;p&gt; &lt;a href="http://www.clariusconsulting.net/images/blogs/pga/0ce119f277a3_EDF5/image_3.png"&gt;&lt;img style="border-width: 0px; display: inline;" title="image" alt="image" src="/images/blogs/pga/0ce119f277a3_EDF5/image_thumb_3.png" /&gt;&lt;/a&gt;&lt;/p&gt;
		&lt;ul&gt;
				&lt;li&gt;
						&lt;strong&gt;Visual Studio will always load it&lt;/strong&gt;
				&lt;/li&gt;
		&lt;/ul&gt;
		&lt;p&gt; &lt;/p&gt;
		&lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=157304" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=157304</wfw:commentRss></entry><entry><title>VS10 beta 1 - the Microsoft.VsSDK.targets revisited</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/03/157202.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:157202</id><created>2009-07-03T08:28:02Z</created><content type="text/html" mode="escaped">
		&lt;p&gt;
				&lt;strong&gt;
						&lt;u&gt;***Disclaimer: This information applies to Visual Studio 2010 Beta 1 only.***&lt;/u&gt;
				&lt;/strong&gt;
		&lt;/p&gt;
		&lt;p&gt; &lt;/p&gt;
		&lt;p&gt;The first that you notice when compiling a VS package project is that the compilation is really *fast*. Really much faster than compiling an VS 2008 VS package.&lt;/p&gt;
		&lt;p&gt;This is mainly because of two important changes in a VS package registration:&lt;/p&gt;
		&lt;ol&gt;
				&lt;li&gt;There is no package registration with the regpkg utility  &lt;/li&gt;
				&lt;li&gt;There is no &lt;a href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/03/157173.aspx"&gt;devenv /setup&lt;/a&gt; execution&lt;/li&gt;
		&lt;/ol&gt;
		&lt;p&gt; &lt;/p&gt;
		&lt;p&gt;The updated VS SDK msbuild targets now include the following list of actions in order to support the F5 experience:&lt;/p&gt;
		&lt;ul&gt;
				&lt;li&gt;If a VSCT is present in the VS package project  &lt;ul&gt;&lt;li&gt;Compile VSCT  &lt;/li&gt;&lt;li&gt;Embed CTO &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
				&lt;li&gt;Create pkgdef file  &lt;/li&gt;
				&lt;li&gt;Create VSIX manifest file  &lt;/li&gt;
				&lt;li&gt;Create VSIX file which includes  &lt;ul&gt;&lt;li&gt;Project assembly  &lt;/li&gt;&lt;li&gt;Project references  &lt;/li&gt;&lt;li&gt;pkgdef file  &lt;/li&gt;&lt;li&gt;VSIX manifest  &lt;/li&gt;&lt;li&gt;All items with build action set to “Content”&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
				&lt;li&gt;Deploy VSIX to user extensions  &lt;ul&gt;&lt;li&gt;It is deployed under %LocalAppData%\Microsoft\VisualStudio\10.0Exp\Extensions\%Company%\%Package_Name – Package_Guid%\%Package_Version%&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
				&lt;li&gt;Enable the extension  &lt;ul&gt;&lt;li&gt;The key HKCU\Microsoft\VisualStudio\10.0Exp\ExtensionManager\EnabledExtensions\%Company%\%Package_Name – Package_Guid%\%Package_Version% is written&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;p&gt; &lt;/p&gt;
		&lt;p&gt;After the VS project is compiled you can hit F5 within VS and another instance of VS (pointing to the experimental hive) will start and our extension will be there, enabled and ready to run.&lt;/p&gt;
		&lt;p&gt; &lt;/p&gt;
		&lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=157202" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=157202</wfw:commentRss></entry><entry><title>VS 10 beta 1 extensibility model (Part 2)</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/02/156746.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:156746</id><created>2009-07-02T09:04:26Z</created><content type="text/html" mode="escaped">&lt;p&gt;&lt;strong&gt;&lt;u&gt;***Disclaimer: This information applies to Visual Studio 2010 Beta 1 only.***&lt;/u&gt;&lt;/strong&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&amp;nbsp; &lt;p&gt;In the previous &lt;a href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/02/156740.aspx"&gt;post&lt;/a&gt; we covered the details of the &lt;b&gt;&lt;i&gt;Microsoft.VisualStudio.ComponentModelHost.IComponentModel service&lt;/i&gt;&lt;/b&gt; &lt;p&gt;Now it’s time to talk about the &lt;i&gt;Microsoft.VisualStudio.Shell.Interop.IVsComponentModelHost, &lt;/i&gt;which is the other service that is proffered by the host package. &lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&amp;nbsp; &lt;p&gt;&lt;b&gt;&lt;i&gt;Microsoft.VisualStudio.Shell.Interop.IVsComponentModelHost service&lt;/i&gt;&lt;/b&gt; &lt;p&gt;This service has the following responsibilities: &lt;ul&gt; &lt;li&gt;Get the catalog cache folder &lt;/li&gt; &lt;li&gt;Get MEF component locations&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The catalog cache folder is located @ %LocalAppData%\Microsoft\VisualStudio\10.0\ComponentModelCache. &lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp; &lt;p&gt;&lt;i&gt;The &lt;/i&gt;&lt;i&gt;Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager&lt;/i&gt;&lt;i&gt; service&lt;/i&gt; &lt;p&gt;To query extensions locations the &lt;i&gt;IVsExtensionManager&lt;/i&gt; service is used. To filter only MEF component extensions, the “MEFComponent” content type in the VSIX extension manifest is used. &lt;p&gt;This service has many responsibilities which I will cover in future posts, but the one I will describe is: &lt;ul&gt; &lt;li&gt;Get enabled extension locations&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;To get the list of enabled extension locations Visual Studio looks in the following folders: &lt;ul&gt; &lt;li&gt;%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions&lt;/li&gt; &lt;li&gt;%VS10_Install_Dir%\Extensions&lt;/li&gt; &lt;li&gt;%VS10_Install_Dir%\Common7\IDE\Extensions&lt;/li&gt; &lt;li&gt;%VS10_Install_Dir%\Common7\IDE\CommonExtensions&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The first location is where VSIX files are deployed once you double a VSIX file from the Windows explorer shell. &lt;p&gt;The other locations are being used Visual Studio core extensions and to deploy a VSIX file under those locations you will need administrator privileges. &lt;p&gt;&amp;nbsp; &lt;p&gt;Stay tuned,&lt;i&gt;&lt;/i&gt; &lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=156746" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=156746</wfw:commentRss></entry><entry><title>VS 10 beta 1 extensibility model (Part 1)</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/02/156740.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:156740</id><created>2009-07-02T08:50:19Z</created><content type="text/html" mode="escaped">&lt;p&gt;&lt;strong&gt;&lt;u&gt;***Disclaimer: This information applies to Visual Studio 2010 Beta 1 only.***&lt;/u&gt;&lt;/strong&gt; &lt;p&gt;These series of posts will cover two types of Visual Studio 10 Beta 1 extensions: &lt;ol&gt; &lt;li&gt;MEF component (assembly that contains exports and imports) &lt;/li&gt; &lt;li&gt;VSPackage&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;In the previous post we said that Visual Studio is a host for MEF components. This is being done by the introduction of a new VS core package called &lt;i&gt;Microsoft.VisualStudio.ComponentModelHost.HostPackage&lt;/i&gt; &lt;p&gt;The host package is declares the following two core services: &lt;ol&gt; &lt;li&gt;&lt;i&gt;Microsoft.VisualStudio.ComponentModelHost.IComponentModel&lt;/i&gt;&lt;i&gt; &lt;/i&gt;service&lt;/li&gt; &lt;li&gt;&lt;i&gt;Microsoft.VisualStudio.Shell.Interop.IVsComponentModelHost&lt;/i&gt; service&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&amp;nbsp; &lt;p&gt;&lt;b&gt;&lt;i&gt;Microsoft.VisualStudio.ComponentModelHost.IComponentModel&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; service&lt;/i&gt;&lt;/b&gt; &lt;p&gt;This service has the following responsibilities: &lt;ul&gt; &lt;li&gt;Get MEF catalog by name &lt;/li&gt; &lt;li&gt;Get MEF export / exports&lt;/li&gt; &lt;li&gt;Creates and maintains a list of available catalogs&lt;/li&gt; &lt;li&gt;Declares the GlobalCompositionContainer&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp; &lt;p&gt;&lt;i&gt;The VsCatalogProvider, AssemblyListCatalog and VSCatalogName classes:&lt;/i&gt; &lt;p&gt;The GetCatalog method returns a catalog by name by searching the list of available catalogs that is maintained by the service itself.  &lt;p&gt;If the catalog doesn’t exist it is created and then added to the list. To create a catalog the &lt;i&gt;Microsoft.VisualStudio.ExtensibilityHosting.VsCatalogProvider &lt;/i&gt;class is used. This class has the following responsibility: &lt;ul&gt; &lt;li&gt;Build and return an &lt;i&gt;AssemblyListCatalog&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The &lt;i&gt;Microsoft.VisualStudio.ExtensibilityHosting.AssemblyListCatalog&lt;/i&gt; class derives from the MEF ComposablePartCatalog and it is basically a list of AssemblyCatalogs. &lt;p&gt;The &lt;i&gt;AssemblyListCatalog&lt;/i&gt; is constructed by adding every MEF component assembly found in the system filtered by the catalog name. To find the MEF component assemblies, the Microsoft.VisualStudio.Shell.Interop.IVsComponentModelHost service&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;is used. &lt;p&gt;To specify a catalog name for a MEF component assembly there is a VsCatalogName attribute: &lt;p&gt;&lt;em&gt;[assembly: VsCatalogName("Microsoft.VisualStudio.Editor")]&lt;/em&gt; &lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp; &lt;p&gt;&lt;i&gt;Multiple MEF composition containers:&lt;/i&gt; &lt;p&gt;Visual studio supports multiple MEF composition containers. A core component is responsible for creating its own container. For example the Visual Studio editor creates its own container. There is a service that maintains the list of available containers and it is the &lt;i&gt;Microsoft.VisualStudio.ExtensibilityHosting.VsExportProviderService&lt;/i&gt; class. &lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp; &lt;p&gt;&lt;i&gt;The GlobalCompositionContainer:&lt;/i&gt; &lt;p&gt;The GlobalCompositionContainer acts as the root MEF composition container. This container is used by the IComponentModel service to get MEF export / exports. &lt;p&gt;Behind the scenes the GlobalCompositionContainer uses the &lt;i&gt;VsExportProviderService &lt;/i&gt;to search in all available containers. &lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp; &lt;p&gt;&lt;i&gt;The &lt;/i&gt;&lt;i&gt;VsCompositionContainer&lt;/i&gt; &lt;i&gt;class:&lt;/i&gt; &lt;p&gt;A container in Visual Studio derives from the MEF CompositionContainer class and adds features such as export providing settings, export sharing policies, export provisioning scope, etc. And it modeled by the &lt;i&gt;Microsoft.VisualStudio.ExtensibilityHosting.VsCompositionContainer&lt;/i&gt; class &lt;p&gt;&amp;nbsp; &lt;p&gt;In the next post I will cover the details for the &lt;i&gt;Microsoft.VisualStudio.Shell.Interop.IVsComponentModelHost &lt;/i&gt;service. &lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp; &lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=156740" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=156740</wfw:commentRss></entry><entry><title>MVP 2009!!!</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/01/156374.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:156374</id><created>2009-07-01T09:37:50Z</created><content type="text/html" mode="escaped">&lt;p&gt;I just received the confirmation email. I am a MVP again for Visual C#.&lt;/p&gt; &lt;p&gt;I want to thank my MVP lead &lt;a href="http://blogs.msdn.com/mvplead"&gt;Fernando Garcia Loera&lt;/a&gt; and the rest of people involved in the evaluation process for the recognition of my community efforts.  &lt;p&gt;Thanks Microsoft!!!  &lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=156374" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=156374</wfw:commentRss></entry><entry><title>MEF and VS10 beta 1</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/07/01/MEFandVS10beta1.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:156381</id><created>2009-07-01T10:04:20Z</created><content type="text/html" mode="escaped">
		&lt;p&gt;As you might know, the new VS10 editor extensibility infrastructure is based in the Managed Extensibility framework (MEF).&lt;/p&gt;
		&lt;p&gt;MEF is a library for creating lightweight, extensible applications. It allows application developers to discover and use extensions with no configuration required.&lt;/p&gt;
		&lt;p&gt;The core of the MEF composition model is the composition container, which contains all the parts available and it responsible for performing composition.&lt;/p&gt;
		&lt;p&gt;Visual Studio has it own composition container which means that Visual Studio itself is a host for MEF components.&lt;/p&gt;
		&lt;p&gt;And of course MEF can be used not only to extend the editor, but other VS components too.&lt;/p&gt;
		&lt;p&gt;In the next series of posts I will start describing how the new &lt;strong&gt;IComponentModel&lt;/strong&gt; service, the new &lt;b&gt;VsShellComponentModelHost&lt;/b&gt;, &lt;strong&gt;VsCompositionContainer&lt;/strong&gt; and &lt;strong&gt;VsCatalogProvider&lt;/strong&gt; classes, works in details. (At least in VS10 Beta 1)&lt;/p&gt;
		&lt;p&gt;Some MEF pointers:&lt;/p&gt;
		&lt;p&gt;
				&lt;a href="http://mef.codeplex.com"&gt;Managed Extensibility Framework project&lt;/a&gt;
		&lt;/p&gt;
		&lt;p&gt;
				&lt;a href="http://mef.codeplex.com/Wiki/View.aspx?title=Guide"&gt;Managed Extensibility Framework Programming guide&lt;/a&gt;
		&lt;/p&gt;
		&lt;p&gt;
				&lt;a href="http://msdn.microsoft.com/en-us/library/dd460648%28VS.100%29.aspx"&gt;Managed Extensibility Framework Overview&lt;/a&gt;
		&lt;/p&gt;
		&lt;p&gt;  &lt;/p&gt;
		&lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=156381" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=156381</wfw:commentRss></entry><entry><title>MSDN briefing</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/02/06/MSDNbriefing.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:116697</id><created>2009-02-06T09:02:55Z</created><content type="text/html" mode="escaped">&lt;p&gt;From my friend &lt;a href="http://weblogs.asp.net/cibrax/archive/2009/02/04/buenos-aires-msdn-and-technet-briefing-2009.aspx"&gt;Pablo&lt;/a&gt;:  &lt;blockquote&gt; &lt;p&gt;I just got an email from &lt;a href="http://blogs.msdn.com/masaez"&gt;Miguel Angel Saenz&lt;/a&gt; confirming the date of the next biggest Microsoft event in Buenos Aires Argentina, "MSDN briefing", which will take place on March 25th.  &lt;p&gt;They are now accepting proposals or suggestions for possible sessions in the event, or to give an specific name to event itself :).  &lt;p&gt;If you are interested in participating, check out &lt;a href="http://www.puertadeenlace.net/"&gt;this website&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;See you there!&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=116697" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=116697</wfw:commentRss></entry><entry><title>How do I know when Visual Studio finishes the initialization process</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/01/30/HowdoIknowwhenVisualStudiofinishestheinitializationprocess.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:116279</id><created>2009-01-30T10:10:01Z</created><content type="text/html" mode="escaped">
		&lt;p&gt;After a long time my nineteenth &lt;strong&gt;How do I&lt;/strong&gt; is up.&lt;/p&gt;
		&lt;p&gt;
				&lt;em&gt;Scenario&lt;/em&gt;
		&lt;/p&gt;
		&lt;p&gt;Sometimes we need to initialize services in the Package.Initialize() method and these services have a dependency on the STE/DTE or other services. The problem is that if the shell is not fully initialized by that moment the SDTE/DTE GetService call will return null. The solution to this problem is to initialize this kind of services when the shell is fully initialized. The focus of this &lt;strong&gt;How do I&lt;/strong&gt; tackles this scenario.&lt;/p&gt;
		&lt;p&gt; &lt;/p&gt;
		&lt;p&gt;
				&lt;em&gt;Interfaces and classes needed&lt;/em&gt;
		&lt;/p&gt;
		&lt;ul&gt;
				&lt;li&gt;
						&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivsshellpropertyevents.aspx"&gt;IVsShellPropertyEvents&lt;/a&gt;
				&lt;/li&gt;
		&lt;/ul&gt;
		&lt;p&gt;
				&lt;em&gt;
				&lt;/em&gt; &lt;/p&gt;
		&lt;p&gt;
				&lt;em&gt;Code snippet&lt;/em&gt;
		&lt;/p&gt;
		&lt;div style="background: white none repeat scroll 0% 0%; font-size: 10pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: black; font-family: consolas;"&gt;
				&lt;p style="margin: 0px;"&gt;
						&lt;span style="color: blue;"&gt;public&lt;/span&gt;
						&lt;span style="color: blue;"&gt;sealed&lt;/span&gt;
						&lt;span style="color: blue;"&gt;class&lt;/span&gt;
						&lt;span style="color: rgb(43, 145, 175);"&gt;VSPackage1Package&lt;/span&gt; : &lt;span style="color: rgb(43, 145, 175);"&gt;Package&lt;/span&gt;, &lt;span style="color: rgb(43, 145, 175);"&gt;IVsShellPropertyEvents&lt;/span&gt;&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;{&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;    &lt;span style="color: blue;"&gt;private&lt;/span&gt;&lt;span style="color: blue;"&gt; uint&lt;/span&gt; shellCookie;&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;    &lt;span style="color: blue;"&gt;protected&lt;/span&gt;&lt;span style="color: blue;"&gt; override &lt;/span&gt;&lt;span style="color: blue;"&gt;void&lt;/span&gt; Initialize()&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;    {&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;base&lt;/span&gt;.Initialize();&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(43, 145, 175);"&gt;IVsShell&lt;/span&gt; shellService = &lt;span style="color: blue;"&gt;this&lt;/span&gt;.GetService(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;SVsShell&lt;/span&gt;)) &lt;span style="color: blue;"&gt;as &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;IVsShell&lt;/span&gt;;&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;        &lt;span style="color: rgb(43, 145, 175);"&gt;ErrorHandler&lt;/span&gt;.ThrowOnFailure(&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;            shellService.AdviseShellPropertyChanges(&lt;span style="color: blue;"&gt;this&lt;/span&gt;, &lt;span style="color: blue;"&gt;out&lt;/span&gt; shellCookie));&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;    }&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;    &lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="color: blue;"&gt; int&lt;/span&gt; OnShellPropertyChange(&lt;span style="color: blue;"&gt;int&lt;/span&gt; propid, &lt;span style="color: blue;"&gt;object&lt;/span&gt; var)&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;    {&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;if&lt;/span&gt;(propid == (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)&lt;span style="color: rgb(43, 145, 175);"&gt;__VSSPROPID&lt;/span&gt;.VSSPROPID_Zombie)&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;        {&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;            &lt;span style="color: blue;"&gt;if&lt;/span&gt;((&lt;span style="color: blue;"&gt;bool&lt;/span&gt;)var == &lt;span style="color: blue;"&gt;false&lt;/span&gt;)&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;            {&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;                &lt;span style="color: green;"&gt;//At this point the environment is fully loaded and initialized&lt;/span&gt;&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;                &lt;span style="color: green;"&gt;//Lets initialize our services&lt;/span&gt;&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;                &lt;span style="color: rgb(43, 145, 175);"&gt;IVsShell&lt;/span&gt; shellService = &lt;span style="color: blue;"&gt;this&lt;/span&gt;.GetService(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;SVsShell&lt;/span&gt;)) &lt;span style="color: blue;"&gt;as&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt; IVsShell&lt;/span&gt;;&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;                &lt;span style="color: blue;"&gt;if&lt;/span&gt;(shellService != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;                {&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;                    &lt;span style="color: rgb(43, 145, 175);"&gt;ErrorHandler&lt;/span&gt;.ThrowOnFailure(&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;                        shellService.UnadviseShellPropertyChanges(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.shellCookie));&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;                }&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;                &lt;span style="color: blue;"&gt;this&lt;/span&gt;.shellCookie = 0;&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;            }&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;        }&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;return&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt; VSConstants&lt;/span&gt;.S_OK;&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;    }&lt;/p&gt;
				&lt;p style="margin: 0px;"&gt;}&lt;/p&gt;
		&lt;/div&gt;
		&lt;p&gt;
				&lt;em&gt;Assemblies needed&lt;/em&gt;
		&lt;/p&gt;
		&lt;ul&gt;
				&lt;li&gt;Microsoft.VisualStudio.Shell.Interop   &lt;/li&gt;
				&lt;li&gt;Microsoft.VisualStudio.Shell&lt;/li&gt;
		&lt;/ul&gt;
		&lt;p&gt; &lt;/p&gt;
		&lt;p&gt;Stay tuned,&lt;/p&gt;
		&lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=116279" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=116279</wfw:commentRss></entry><entry><title>StickyNotes trial available now!!!</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2009/01/09/115226.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:115226</id><created>2009-01-09T09:42:53Z</created><content type="text/html" mode="escaped">&lt;p&gt;Based on the community feedback there is now a trial edition available on the &lt;a href="http://stickynotes4code.com/TryIt.aspx"&gt;site&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Please try it out and leave me your &lt;a href="http://stickynotes4code.uservoice.com/pages/general?referer_type=top3"&gt;feedback&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=115226" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=115226</wfw:commentRss></entry><entry><title>Merry Christmas: StickyNotes Professional Edition is OUT!!</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2008/12/22/113974.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:113974</id><created>2008-12-22T06:10:03Z</created><content type="text/html" mode="escaped">
		&lt;p&gt;I am really proud to announce that finally &lt;a href="http://stickynotes4code.com/"&gt;StickyNotes Professional Edition&lt;/a&gt; is available for download.&lt;/p&gt;
		&lt;p&gt;There are two types of comments:  &lt;/p&gt;
		&lt;ul&gt;
				&lt;li&gt;Permanent comments&lt;/li&gt;
				&lt;ul&gt;
						&lt;li&gt;Used for reference and code maintenance&lt;/li&gt;
						&lt;li&gt;Usually describe an algorithm or why we just did something in a particular manner&lt;/li&gt;
				&lt;/ul&gt;
				&lt;li&gt;Temporary comments&lt;/li&gt;
				&lt;ul&gt;
						&lt;li&gt;Used for personal purposes like reminders. Ex: //I need to verify this.&lt;/li&gt;
						&lt;li&gt;Used to reflect something we need to do or complete. Ex: //TODO:&lt;/li&gt;
						&lt;li&gt;Used for code review. Ex: // Please validate against null&lt;/li&gt;
						&lt;li&gt;Written in the middle of the development and deleted before shipping the product &lt;/li&gt;
				&lt;/ul&gt;
		&lt;/ul&gt;
		&lt;p&gt;Permanent comments are part of the source code, committed to the source control system and visible by the entire team. &lt;/p&gt;
		&lt;p&gt;Temporary comments should not be part of the source code, should not always be committed to the source control system and sometimes should not be visible by the entire team.&lt;/p&gt;
		&lt;p&gt;Super features: &lt;/p&gt;
		&lt;ul&gt;
				&lt;li&gt;Add personal and team notes with &lt;a href="http://stickynotes4code.com/"&gt;StickyNotes&lt;/a&gt;© Editor&lt;/li&gt;
				&lt;li&gt;
						&lt;a href="http://stickynotes4code.com/"&gt;StickyNotes&lt;/a&gt;© Tooltip&lt;/li&gt;
				&lt;li&gt;
						&lt;a href="http://stickynotes4code.com/"&gt;StickyNotes&lt;/a&gt;© Viewer&lt;/li&gt;
				&lt;li&gt;
						&lt;a href="http://stickynotes4code.com/"&gt;StickyNotes&lt;/a&gt;© Indicators&lt;/li&gt;
				&lt;li&gt;WPF based UI&lt;/li&gt;
				&lt;li&gt;UI customization&lt;/li&gt;
				&lt;li&gt;Support for themes &lt;/li&gt;
		&lt;/ul&gt;
		&lt;p&gt;
				&lt;a href="http://www.clariusconsulting.net/images/blogs/pga/MerryChristmasStickyNotesProfessionalEdi_99B1/AddNote.png"&gt;
						&lt;img src="/ImageGallery/pga/AddNote.png" alt="AddNote.png" /&gt;
						&lt;br /&gt;
				&lt;/a&gt;
		&lt;/p&gt;
		&lt;p&gt;
				&lt;a href="http://www.clariusconsulting.net/images/blogs/pga/MerryChristmasStickyNotesProfessionalEdi_99B1/Editor.png"&gt;
						&lt;br /&gt;
				&lt;/a&gt;
		&lt;/p&gt;
		&lt;img src="/ImageGallery/pga/Editor.png" alt="Editor.png" /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		&lt;img src="/ImageGallery/pga/Tooltip.png" alt="Tooltip.png" /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		&lt;img src="/ImageGallery/pga/Viewer.png" alt="Viewer.png" /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		&lt;p&gt;Enjoy &lt;a href="http://stickynotes4code.com/"&gt;it&lt;/a&gt;!!!&lt;/p&gt;
		&lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=113974" width="1" height="1"&gt;</content><slash:comments>2</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=113974</wfw:commentRss></entry><entry><title>VSXDevCon 08 sceencasts uploaded</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2008/10/21/VSXDevCon08sceencastsuploaded.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:104097</id><created>2008-10-21T19:33:21Z</created><content type="text/html" mode="escaped">&lt;p&gt;The screencasts for the VSX Developer Conference 08 are live and can be downloaded from:&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/vsx/cc676517.aspx"&gt;http://msdn.microsoft.com/en-us/vsx/cc676517.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you are interested in the session that I gave "&lt;b&gt;How to extend Visual Studio and become a more productive developer&lt;/b&gt;" you can watch it @ &lt;a title="http://channel9.msdn.com/posts/AnthonyC/How-to-extend-Visual-Studio-and-become-a-more-productive-developer/" href="http://channel9.msdn.com/posts/AnthonyC/How-to-extend-Visual-Studio-and-become-a-more-productive-developer/"&gt;http://channel9.msdn.com/posts/AnthonyC/How-to-extend-Visual-Studio-and-become-a-more-productive-developer/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=104097" width="1" height="1"&gt;</content><slash:comments>2</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=104097</wfw:commentRss></entry><entry><title>GAXP1409 released</title><link rel="alternate" type="text/html" href="http://www.clariusconsulting.net/blogs/pga/archive/2008/10/06/GAXP1409released.aspx" /><id>e6de741d-39cb-46fc-b8ae-6ce6880bcef9:100718</id><created>2008-10-06T07:50:40Z</created><content type="text/html" mode="escaped">&lt;p&gt;A new &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E28205C6-BB07-401B-9A76-804784598BF0&amp;amp;displaylang=en"&gt;patch&lt;/a&gt; for &lt;a href="http://www.microsoft.com/downloads/info.aspx?na=40&amp;amp;p=1&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=e28205c6-bb07-401b-9a76-804784598bf0&amp;amp;u=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2fvsts2008%2faa718948.aspx"&gt;GAX&lt;/a&gt; targeting Visual Studio 2008 SP1 was released last week.&lt;/p&gt; &lt;p&gt;I will update the VSSDK Assist installer to target this release soon!&lt;/p&gt; &lt;p&gt;Pablo&lt;/p&gt;&lt;img src="http://www.clariusconsulting.net/aggbug.aspx?PostID=100718" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://www.clariusconsulting.net/blogs/pga/commentrss.aspx?PostID=100718</wfw:commentRss></entry></feed>