Visual Studio 2008 IDE no muestra los controles personalizados correctamente

Estoy teniendo un problema en tiempo de diseño con todos mis formularios y controles personalizados dentro de Visual Studios 2008. Hasta el registro anterior, todos los controles se procesaban como se esperaba. La única diferencia principal entre la versión actual y la versión de trabajo anterior fue que una propiedad en el controlUIText fue renombrado deContent aValue. Los otros cambios están agregando un nuevo formulario y 3 nuevos enums, pero ciertamente no hay un cambio obvio que afecte a todos los formularios en el programa (incluidos los nuevos).

Todos los controles (en cada formulario) ahora se representan como un cuadro con el nombre del control (sin embargo, todos se procesan correctamente en el tiempo de ejecución):

He intentado crear un nuevo formulario en mi proyecto, crear un nuevo control personalizado con solo una etiqueta en él, y todavía tengo exactamente el mismo problema:

Tenga en cuenta que los controles de formulario .Net estándar funcionan bien, por lo que esto es solo un problema con los controles personalizados.

Si restauro mi versión anterior desde el repositorio, entonces todo comienza a renderizarse correctamente de nuevo:

Simplemente podría volver a esta versión de trabajo y continuar, pero preferiría saber cómo solucionar el problema en caso de que vuelva a ocurrir. Estoy publicando aquí con la esperanza de que sea un problema de programación, como se adjunta a un problema de Visual Studios 2008 (por cierto, en SP1).

ACTUALIZACIÓN - Emisión rastreada, no se puede explicar

I fijo la cuestión. Bueno, arreglado no es realmente la palabra correcta para eso. Localicé el problema eliminando todos los controles de usuario 1 a la vez hasta que el formulario comenzó a mostrarse correctamente nuevamente. El problema estaba en mi control de Firma (que ha estado presente durante años, solo en mi última revisión que había agregado una referencia al proyecto)iVirtualDocket.CodeLibrary en el proyecto principal:

<code>  iVirtualDocket
    - References iVirtualDocket.UIControls
    - References iVirtualDocket.CodeLibrary
  iVirtualDocket.UIControls
    -References iVirtualDocket.CodeLibrary
</code>

La firma tiene una propiedad llamadaSignatureData, que estaba haciendo esto:

<code>public byte[] SignatureData
{
    get
    {
        if (_signature == null)
        {
            return null;
        }
        else
        {
            return iVirtualDocket.CodeLibrary.Conversions.ImageToByteArray(
                _signature, ImageFormat.Png);
        }
    }
}
</code>

ImageToByteArray se parece a lo siguiente:

<code>public static byte[] ImageToByteArray(Image imageToConvert,
        ImageFormat formatOfImage)
{
    byte[] ret;
    using (MemoryStream ms = new MemoryStream())
    {
        imageToConvert.Save(ms, formatOfImage);
        ret = ms.ToArray();
    }

    return ret;
}
</code>

Si muevo el método anterior en elUIControls Proyecto, entonces todo funciona bien. Sin embargo, tan pronto como vuelva a poner el método en laCodeLibrary Proyecto y llámelo allí, todos mis formularios dejan de representar UserControls.

Así que hacer lo siguiente soluciona el problema, pero realmente me gustaría saber por qué:

<code>public byte[] SignatureData
{
    get
    {
        if (_signature == null)
        {
            return null;
        }
        else
        {
            // Need to call this code directly here instead of through 
            // the CodeLibrary conversions, otherwise all user controls stop 
            // rendering in design mode
            byte[] ret;
            using (MemoryStream ms = new MemoryStream())
            {
                _signature.Save(ms, ImageFormat.Png);
                ret = ms.ToArray();
            }

            return ret;
        }
    }
}
</code>

(Lo que es aún más extraño es que aún no uso esta propiedad).

Respuestas a la pregunta(2)

Su respuesta a la pregunta