Error HRESULT E_FAIL al pegar referencias en Visual Studio

Sé que esto no es una pregunta de progtwigción, pero es una pregunta de la herramienta de progtwigción.

En Visual Studio 2008 Team Edition (versión 9.0 con .NET 3.5 SP1) cuando copio y pego las referencias de un csproj a otro (con el menú contextual en la vista ‘Explorador de soluciones’) obtengo el siguiente error:

El error HRESULT E_FAIL se ha devuelto desde una llamada a un componente COM

Esto acaba de empezar a suceder en mi máquina. Solo puedo encontrar este artículo al respecto, y no contiene ninguna solución.

¿Algunas ideas?

Vaya, E_FAIL es el error COM más genérico, ya que literalmente significa que una función COM devolvió un error. Me imagino que de alguna manera, Visual Studio 2008 tiene un objeto COM dañado en alguna parte.

¿Ha intentado volver a instalar Visual Studio 2008 solo para volver a registrar todos sus objetos y archivos de TLB?

Este es el hit número 1 que aparece en Google para VS 2010 paste reference E_FAIL y similares, así que pensé en compartir esta solución:

No use copiar / pegar referencias a través del menú contextual en el Explorador de soluciones.

En lugar:

  1. Utilice el menú contextual para descargar el proyecto para copiar referencias.
  2. Edite el archivo de proyecto (.csproj; es solo XML).
  3. Encuentre la (s) referencia (s) que le interesan y copie el (los) nodo (s) XML de .
  4. Descargar el proyecto para copiar la referencia en.
  5. Edite el archivo de proyecto (.csproj)
  6. Pegue la referencia copiada en el paso anterior en la ubicación apropiada. buscar el nodo que contiene algo como y pegar su referencia justo encima de él.
  7. Cierre ambos archivos .csproj, guardando también el objective recién modificado.
  8. Recargue ambos proyectos a través del menú contextual del Explorador de soluciones.

Su referencia ahora se copia en el proyecto de destino.

Aparentemente, como mínimo, hay un problema con las referencias que usan variables de entorno, como se describe aquí (aunque en mi caso, tenía un problema con referencias que no usaban variables de entorno, y en Visual Studio 2010 …)