Recently, a customer asked us if it was possible to develop and debug a VB/C# extension with Visual Studio 2010 (and the 2010 SDK), but still have a binary that also works with VS 2008. This is indeed possible, but it requires some hacking of your project file to get it set up.
One nice thing about this solution is that you can easily switch between targeting 2008 and 2010 by simply changing the startup project between the package project and the VSIX project.
Setup machine with VS 2008 SP1 + VS2008 SDK 1.1 + VS2010 Beta 2 + VS2010 Beta 2 SDK
<Target Name="PkgdefProjectOutputGroup" Outputs="@(PkgdefOutputGroupOutput)"> <RegPkg ItemToRegister="$(TargetPath)" ProductVersion="$(TargetVSVersion)" RegistrationRoot="$(__InternalTargetRoot)" SDKVersion="$(VsSDKVersion)" UseCodebase="true" OutputFile="$(IntermediateOutputPath)$(TargetName)_.pkgdef" Unregister="false" UseVS2005MPF="$(__InternalUseMPF80)" /> <ItemGroup> <_PkgdefOutputGroupOutput Include="$(IntermediateOutputPath)$(TargetName)_.pkgdef" /> </ItemGroup> <ItemGroup> <PkgdefOutputGroupOutput Include="@(_PkgdefOutputGroupOutput->'%(FullPath)')" /> </ItemGroup> </Target>
<IncludeOutputGroupsInVSIX> BuiltProjectOutputGroup; PkgdefProjectOutputGroup </IncludeOutputGroupsInVSIX> <IncludeOutputGroupsInVSIXLocalOnly> DebugSymbolsProjectOutputGroup </IncludeOutputGroupsInVSIXLocalOnly>