Design Time Assemblies and Visual Studio Toolbox

Apr 28, 2011 at 5:42 PM
Edited Apr 28, 2011 at 5:50 PM

How do I deploy my design time assemblies so that Visual Studio will add the controls into the toolbox.

currently we deploy our assemblies with an .exe that will create a folder "c:\HelloWorld\DotNet\API\ inside the folder you have the HelloWorld.dll and a \Design folder with HelloWorld.Design.dll the next step is to add controls in HelloWorld.dll to the toolbox, which requires a registry entry like below.

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Silverlight\v4.0\AssemblyFoldersEx\HelloWorld API]
@="c:\\HelloWorld\\DotNet\\API\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Silverlight\v4.0\AssemblyFoldersEx\HelloWorld API\Toolbox]
"TabName"="Hello World Silverlight 4"

Since NuGet deploys the assemblies into the local project each time it is installed. How can support for design assemblies and VS toolbox be implemented.

There is the versioning problem too to worry about since each time the user installs a newer version it makes a new folder

HelloWorld.TestProject
    \packages
         \HelloWorld1.0
         \HelloWorld1.1
         \repositories.config

Coordinator
Apr 28, 2011 at 6:01 PM

Build a VSIX for the Visual Studio Extension Gallery: http://visualstudiogallery.msdn.microsoft.com/

That’s a more appropriate vehicle than NuGet for these types of extensions to Visual Studio.

Apr 28, 2011 at 7:51 PM

So you are saying that i should not use NuGet or that I Build a VSIX  and use them both together. I am not familiar with Visual Stuido Extension Gallery.

Coordinator
Apr 28, 2011 at 8:26 PM

Yeah, I’m suggesting NuGet is not the right tool for such a thing. NuGet is really about bringing code into a project (assembly references, content files). Toolbox items are extensions to Visual Studio which is out of the scope of NuGet (at least it is right now).

I’ve heard creating a VSIX isn’t too hard, but I honestly have never done it. But there are NuGet team members who have (obviously since NuGet itself is a VSIX) and probably lots of docs out there. You can look at our NuGet VSIX project in our source tree to get ideas.