I attended a session by Don Demsak (aka DonXML) on Visual Studio extensibility at Philly.NET's Code Camp two weeks ago. I have always been interested in extending Visual Studio, and I got some good insight. I finally had a chance to start playing with the VSIP stuff again this weekend. I created a Visual Studio Integration Package from the installed template and the first thing that hit me was that I can only create them in C++ and C#.
What!? No VB? I thought C# and VB were both first class citizens in .NET? Why can't I? And so I decided to find out. I finished creating my package project in C#, and set about to convert it to VB. The code was no problem; about 550 lines according to the project line counter add-in.
I ran into my first issue when the project wasn't recognizing the imported Microsoft.VisualStudio.xxx types. I removed the references I had copied from the C# project, added them manually, and that problem was solved. So far so good. Once I got the project to compile, I copied the Debug settings for the experimental hive, hit F5, and nothing. The VS experimental hive opens, but there is no trace of my projects tool window in the menus. Hmm. I go and load up the C# version, and notice that during the compile, there is a call made to RegPkg. I copy this command, and with some finagling, get it into my VB project.
call "C:\Program Files\Visual Studio 2005 SDK\2007.02\VisualStudioIntegration\Tools\bin\RegPkg.exe" /root:Software\Microsoft\VisualStudio\8.0Exp /codebase "$(TargetPath)"
Cool. So now it builds, and registers itself in the experimental hive. I know this because I can see it in the Package Load Analyzer add-in from the SDK.
Unfortunately, it now seems I have another issue. Visual Studio is complaining about the Package Load Key (PLK). I checked the Fusion logs, nothing there. I checked the ActivityLog.xml file in the "%APPDATA%\Microsoft\VisualStudio\8.0" directory, nothing there. What the!? I need to do a deep dive into this PLK stuff.
It seems that for the time being, I am stuck. I'll head back to Google, and see if I can figure this thing out.