April 17th, 2025

Toolbox Support for Explicit Assembly References in Windows Forms Out-of-Process Designer

Visual Studio 17.14 Preview 3 introduces a new feature that enhances the Windows Forms out-of-process designer experience for .NET Framework projects. This release brings Toolbox support for Explicit Assembly References, addressing a long-standing need in legacy application development and migration workflows.

Extension icon

What Are Explicit Assembly References?

Explicit Assembly References are stand-alone assemblies directly referenced in your project. They are not pulled in through NuGet packages, project references, or the Global Assembly Cache (GAC). These assemblies often represent legacy .NET Framework components, especially those compiled for 32-bit, which are not easily upgraded to modern .NET and may exist outside of package management.

Until now, the Toolbox in the Windows Forms designer only displayed controls sourced from NuGet packages or project references. This created a limitation for developers working with long-standing legacy codebases. Explicit Assembly References were invisible to the Toolbox, leading to a fragmented experience and reduced productivity, particularly during modernization efforts.

Why This Matters

Developers relying on legacy Windows Forms controls often face challenges due to this limitation. The traditional approach of using the “Choose Items…” dialog in the Toolbox for in-process designer fails entirely for 32-bit assemblies as those assemblies cannot be loaded in 64-bit Visual Studio.

In response, we have extended Toolbox support to automatically fetch controls’ information from Explicit Assembly References. This allows developers to use their legacy controls within the modern out-of-process designer, removing a key blocker in migration and maintenance workflows.

How It Works

When you launch the Windows Forms out-of-process designer for a .NET Framework project, the designer now automatically scans all references in the solution. It identifies Explicit Assembly References without loading them into Visual Studio itself. Leveraging the Roslyn APIs, the designer analyzes metadata to extract Toolbox item information from these assemblies.

This approach ensures that eligible controls appear in the Toolbox—ready for drag-and-drop just like those from NuGet or project references.

Important Caveats

The out-of-process designer uses a new extensibility model, which clearly separates design time and runtime assemblies. This separation is crucial for enabling advanced design time scenarios like custom CodeDomSerializer usage, specialized UITypeEditor implementations, and custom TypeConverter behaviors.

Explicit Assembly References do not support this separation. As a result, all such assemblies are treated as runtime only, which limits their design time functionality. While basic Toolbox and control instantiation scenarios will work, advanced behaviors may not function as expected.

For the best experience, especially when working with custom design-time features, we strongly recommend using NuGet packages that follow the specified layout for runtime and design-time separation.

Configuring the Feature

This feature is enabled by default starting with Visual Studio 17.14 Preview 3 for .NET Framework projects. If needed, you can toggle this functionality via Visual Studio → Tools → Options → Preview Features

Image of the Tools->Options->Preview Features dialog with the "Windows Forms Designer Direct Assembly Reference Toolbox Support (requires restart) options selected.

We’re currently rolling out this feature exclusively for .NET Framework projects, but we plan to extend this support to .NET projects in future Visual Studio releases.

Looking Ahead

Toolbox support for Explicit Assembly References simplifies working with legacy controls and helps pave the way for smoother migration to .NET. Once this feature expands to .NET projects, it will serve as a powerful bridge during modernization efforts.

While we are happy to offer this capability, we continue to emphasize that for the richest and most predictable design-time experience, the recommended path remains through well-structured NuGet packages aligned with the new extensibility model.

Ready to try it out? Download Visual Studio 17.14 Preview 3 and open your Windows Forms .NET Framework project in the out-of-process designer. Your legacy controls will now appear in the Toolbox, ready for use!

Check out the new Visual Studio Hub

Stay connected with everything Visual Studio in one place! Visit the Visual Studio Hub for the latest release notes, YouTube videos, social updates, and community discussions.

Appreciation for your feedback

Your feedback helps us improve Visual Studio, making it an even more powerful tool for developers. We are immensely grateful for your contributions and look forward to your continued support. By sharing your thoughts, ideas, and any issues you encounter through Developer Community, you help us improve and shape the future of Visual Studio.

Author

Shyam Gupta
Senior Software Engineer

Developer working on Microsoft Visual Studio Windows Forms Designer.

3 comments

  • Junian

    This is a good news. I’m currently still using VS2019 for legacy project to prevent this issue.

    Question: Will this also work for VS2022 ARM64 version?