Debugging error "The Type 'xx' is defined in an assembly that is not referenced"

Posted by Abel on Stack Overflow See other posts from Stack Overflow or by Abel
Published on 2009-11-13T11:05:48Z Indexed on 2010/04/03 1:33 UTC
Read the original article Hit count: 952

The full error is as follows:

The type 'System.Windows.Forms.Control' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

and it points at the very first statement (an Debug.Assert line) in the very first class in a library project that doesn't need System.Windows.Forms (or so I thought). I know how to solve it: add the mentioned reference. But how do I find out what library is causing this error, or better, what part of the code triggers using the WinForms library?

Normally, you can add libraries that reference others, but you only need to add references to these others when they're actually used.


EDIT: Alternative solution

This or similar problems can also be resolved using the Binding Log Viewer Fuslogvw.exe from Microsoft's Framework Tools. It shows all attempts and successes of assemblies your application binds to.

© Stack Overflow or respective owner

Related posts about c#

Related posts about visual-studio-2008