c# - una - la aplicacion se encuentra en modo de interrupcion visual studio 2017
Error de depuraciĆ³n "El tipo ''xx'' se define en un ensamblaje al que no se hace referencia" (3)
El error completo es el siguiente:
El tipo ''System.Windows.Forms.Control'' se define en un ensamblado al que no se hace referencia. Debe agregar una referencia al ensamblado ''System.Windows.Forms, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089''.
y apunta a la primera declaración (una línea Debug.Assert) en la primera clase en un proyecto de biblioteca que no necesita System.Windows.Forms
(o eso pensé). Sé cómo resolverlo: añadir la referencia mencionada. Pero, ¿cómo puedo saber qué biblioteca está causando este error o, mejor aún, qué parte de los activadores de código que utilizan la biblioteca WinForms?
Normalmente, puede agregar bibliotecas que hacen referencia a otras, pero solo necesita agregar referencias a estas otras cuando realmente se usan.
EDITAR: solución alternativa
Estos o problemas similares también se pueden resolver utilizando el Fuslogvw.exe de Binding Log Viewer de las Herramientas de Marco de Microsoft. Muestra todos los intentos y éxitos de ensamblajes a los que se une tu aplicación.
Sospecho que no hay una línea de su código que esté causando esto, ya que dice que no está utilizando los tipos System.Windows.Forms y que el error del compilador no apunta a una línea (útil) de su código.
Lo que creo que está sucediendo es que estás haciendo referencia a una biblioteca que tiene un método o propiedad públicamente visible que devuelve un System.Windows.Forms.Control o toma uno como parámetro. No importa si en realidad terminas llamando a ese método / propiedad, el hecho de que sea visible públicamente significa que tu propio código debe poder resolver todos los tipos que la biblioteca está usando. Si la biblioteca solo utilizara System.Windows.Forms internamente , no estaría experimentando esto.
También significa simplemente mirar las dependencias de los ensamblajes de los que depende, simplemente puede limitar la lista de sospechosos, ya que podría haber algunos ensamblados que dependan de System.Windows.Forms internamente (no hay problema) y el único ensamblado problemático que tiene un parámetro público / valor de retorno de un tipo del ensamblaje SWForms.
Mi sugerencia es que simplemente configure un proyecto vacío sin una referencia a SWForms, luego agregue cada una de sus dependencias por turnos e intente compilarlas después de cada una.
Use algo como NDepend o Reflector o el Examinador de objetos para verificar las dependencias de los ensamblajes de los que depende.
No puedo pensar en ninguna otra forma dada la información anterior.
Yo tenía el mismo error.
El problema fue que usé una referencia a un proyecto, que usa System.Windows.Forms dentro.
La solución es agregar una referencia a System.Windows.Forms también en su proyecto.