visual una studio returned referencias llamada has from error e_fail devuelto componente component been agregar visual-studio silverlight silverlight-4.0

visual studio - studio - Error HRESULT E_FAIL ha sido devuelto desde una llamada a un componente COM



error hresult e_fail visual studio 2017 (24)

En la aplicación Silverlight 4; ¿Qué significa este error?:

"Error HRESULT E_FAIL ha sido devuelto desde una llamada a un componente COM".

Es un error muy genérico. El depurador VS no señala la ubicación exacta del error al depurar.


Aquí hay una forma de generar este error, con el cual tropecé hoy. Tenemos el siguiente botón en XAML:

<Button x:Name="button" Click="Button_Click" Content="Click me" />

El controlador de eventos que maneja el evento Click del botón es el siguiente:

private void Button_Click(object sender, RoutedEventArgs e) { button.Margin = new Thickness(0, double.NaN, 0, 0); }

Cuando hago clic en el botón obtengo el error antes mencionado. El mismo error surge si reemplazo NaN con PositiveInfinity o NegativeInfinity .

Curiosamente, recibo un mensaje de error diferente si el primer parámetro del constructor Thickness contiene el NaN lugar del segundo.


Bueno, casi iba a comer mi computadora ... Finalmente, descubrí que el problema es que QUIZÁS POR ACCIDENTE eliminé un parámetro de una configuración de Margen de un objeto Imagen en la página XAML, orz ...

Margin="0,-20,0"

que debería ser

Margin="0,-20,0,0"

Obviamente no me di cuenta de que alguna vez había modificado algo del XAML, así que he estado solucionando el código de "un momento".

Afortunadamente, encontré esta publicación y volví a comprobar todo, incluida la página XAML ... eso fue ... algo ...


El grupo de aplicaciones de IIS debe ejecutarse como una cuenta que tenga acceso de consulta al servidor de Team Foundation. Esto me solucionó el problema.


En mi caso, cuando intenté importar la base de datos en el proyecto SSDT, esta base de datos ya estaba en proyecto, pero estaba vacía. Acabo de actualizar mi proyecto con Tools -> SQL server -> New schema comparsion . Fuente - base de datos, objetivo - proyecto. Compare - actualización.

Espero que ayude a alguien


En mi situación:

Yo creo un

class MyControl : ContentControl { }

Por defecto, la clase no es pública y XAML no puede cargarla y lanzar una excepción

Error HRESULT E_FAIL ha sido devuelto desde una llamada a un componente COM

Simplemente cambie el alcance de la clase a pública y desaparezca el error.

Espero que esto ayude.

PD. Microsoft debería proporcionar más información que simplemente lanzar un mensaje de error misterioso sin ningún rastro de pila.


Esta es una vieja pregunta, pero en mi caso, ninguna de las soluciones anteriores funcionó. Estaba intentando actualizar los paquetes NuGet en Visual Studio 2017, pero recibía la siguiente excepción.

update-package : Failed to add reference to ''System.Web.Razor''. Error HRESULT E_FAIL has been returned from a call to a COM component.

De hecho, otros comandos NuGet como restaurar-paquete estaban fallando con un mensaje de excepción similar.

Descubrí que faltaban algunos ensamblados en el directorio de paquetes, así que eliminé el directorio de paquetes y volví a Visual Studio 2017. Cuando abrí la solución, me pidió que restaurara los paquetes y, después de eso, pude actualizar los paquetes.

NOTA: Haga una copia de seguridad del directorio del paquete antes de eliminarlo.


Esta es una vieja pregunta, pero pensé que daría mi respuesta ya que encontré este hilo en Google para exactamente el mismo problema.

En mi caso, copié un ejemplo de XAML de la Web para comenzar con Silverlight Toolkit 4. Ese ejemplo XAML contenía un botón simple con un controlador de evento click que no se relacionaba con ningún controlador que existiera realmente en mi código. Al principio no me di cuenta de este simple problema, porque el compilador no me dio un mensaje de error, simplemente vi el mensaje "Error HRESULT E_FAIL ha sido devuelto por una llamada a un componente COM" de arriba en el tiempo de ejecución. Fue solo cuando aislé mi muestra XAML copiándola en una nueva aplicación Silverlight sin ningún otro contenido que revelaba el problema subyacente real en tiempo de compilación.

Entonces, si tienes el mismo mensaje de error en tiempo de ejecución, mi consejo es que consultes cuidadosamente tu XAML para detectar cualquier error que hubieras esperado recoger en el momento de la compilación, pero que por alguna razón terminó como el error en tiempo de ejecución encima. Para depurar, puedes hacer lo que hice y aislar el código que está causando el error en una aplicación independiente de Silverlight sin otro contenido, y ver si, como yo, obtienes un mensaje de error más útil para guiarte.

HTH.


Este error parece ser un ''catch-all'' para los errores que de otra manera no se les da una definición o rastreo específico, especialmente aquellos que tienen que ver con un código Xaml relativamente externo.

En mi caso particular, parecía haber un problema con los espacios de nombres. Mi UserControl está en su propio espacio de nombres (creativamente llamado "UserControls"). Mis páginas están en su propio espacio de nombres ("Páginas"). Quería hacer referencia a una definición de enumeración en el espacio de nombres de Pages desde UserControl, así que simplemente agregué una declaración de using MySolution.Pages; : using MySolution.Pages; . Trivial, y no quería creer que este era el problema. Pero cuando eliminé esa sentencia using y simplemente creé la enumeración en mi espacio de nombres UserControls, voila, no más error HRESULT y también, como una ventaja añadida, mis propiedades de dependencia definidas en el UserControl, que de otro modo misteriosamente no aparecían en el Xaml intellisense , de repente estaban allí y listos para usar.

Sospecho que la causa subyacente de esto en mi caso fue algún tipo de problema de referencia circular. Y dado que no había ningún error específico disponible para relacionarme esa información, simplemente se mezcló en este error HRESULT E_FAIL Com.


Este es un problema de seguridad y permisos. Mire en el IIS y asegúrese de que la Seguridad integrada esté activada. Luego configure el nivel de Protección de aplicaciones en Medio (si es alto, este podría ser el resultado). Luego revise su archivo Web.Config. Asegúrate de que la suplantación esté desactivada.

Esto debería ayudar.


Esto es lo que FINALMENTE solucionó este problema cuando intentamos utilizar la biblioteca MICROSOFT.TEAMFOUNDATION al consultar Team Foundation Server:

  1. Team Foundation Explorer debe instalarse con la versión actual a la que se hace referencia en la aplicación.
  2. MSDTC - Configuración. (Vea la configuración de DTC a continuación)
  3. El grupo de aplicaciones de IIS debe ejecutarse como una cuenta que tiene acceso de consulta al servidor de Team Foundation
  4. IIS App Pool tiene que ejecutarse como una cuenta que tiene acceso COM en el servidor IIS (tenemos un servidor dedicado para esto, por lo que convertimos al usuario de identidad en un administrador en el servidor local).
  5. El cortafuegos debe estar apagado o configurado para permitir el acceso COM para el servicio DTC.

Configuración de DTC ----

  1. Haga clic en Inicio, haga clic en Ejecutar, escriba dcomcnfg y luego haga clic en Aceptar para abrir Servicios de componentes.
  2. En el árbol de la consola, haga clic para expandir los Servicios de componentes, haga clic para expandir Computadoras, haga clic para expandir Mi PC y haga clic para expandir Coordinador de transacciones distribuidas.
  3. Haga clic con el botón derecho en DTC local y haga clic en Propiedades para mostrar el cuadro de diálogo Propiedades de DTC local.
  4. Haga clic en la pestaña Seguridad.
  5. En la sección Configuración de seguridad, haga clic en Acceso a DTC de red.
  6. En la sección Cliente y administración, seleccione Permitir clientes remotos y Permitir administración remota.
  7. En la sección Comunicación del administrador de transacciones, seleccione Permitir entrada y Permitir salientes.
  8. En la sección Comunicación del administrador de transacciones, seleccione Autenticación mutua requerida (si todas las máquinas remotas ejecutan Windows Server 2003 SP1 o Windows XP SP2 o superior), seleccione Autenticación de llamadas entrantes requerida (si ejecuta MSDTC en un clúster) o seleccione No se requiere autenticación si algunas de las máquinas remotas son anteriores a Windows Server 2003 SP1 o anteriores a Windows XP SP2. No se requiere autenticación es la selección recomendada.

Espero que esto ayude.


Hay muchas soluciones, pero esta es la única solución que funcionó varias veces para mí. Se ha probado en VS2012 VS2013 y VS2015, creo que funciona igual de bien para todos. Solo debes seguir los pasos a continuación para solucionar este problema.

Paso 1: Cerrar Visual Studio
Paso 2: Eliminar archivos * .csproj.user y * .suo
Paso 3: vuelva a abrir VS e intente ejecutar el proyecto nuevamente en modo de depuración.

NOTA: Esta situación ocurre cuando varios usuarios trabajan en el mismo proyecto con diferentes versiones de .suo archivo .suo no es compatible con el disparo de ida y vuelta entre las dos versiones VS. Contiene información sobre las configuraciones que el usuario actual ha seleccionado para su entorno de trabajo VS.


La mayor parte de la razón de este problema está relacionada con la dependencia propietaria del diseño de los componentes. Usted acaba de enfrentar este problema en el diseño.

La sopa es fácil pero lleva tiempo :) Limpiar proyecto y reconstruir todo. ¡Cuando ingresas de nuevo al diseño, deberías ver que todo está bien!

¡Espero que esto ayude!

Si ve esta excepción recientemente, intente reinstalar silverlight sdk4.


La mayoría de las veces es difícil ver dónde se encuentra exactamente el problema, especialmente en XAML. Otra forma de averiguar dónde falla es realizar los siguientes pasos

  1. Copie la excepción que se muestra en la ventana de salida de Visual Studio. ejemplo. System.Reflection.TargetInvocationException
  2. Haga clic en Depurar -> Excepciones. Muestra la lista de excepciones.
  3. Haga clic en el botón "Agregar ...".
  4. Pegue la excepción copiada en el paso 1 en el cuadro de texto. Seleccione "Excepciones de Common Language Runtime" en la lista desplegable.
  5. Haga clic en el botón "Aceptar". La excepción seleccionada estará resaltada. Asegúrese de marcar la casilla de verificación contra la excepción. Haga clic en el botón "Aceptar" nuevamente para cerrar el cuadro de diálogo.
  6. Ahora ejecuta la aplicación en modo de depuración. La aplicación se rompe cuando ocurre la excepción. Algunas veces en el modo ensamblador también.
  7. En este momento tienes dos opciones,

    • Haga clic en Ver detalles de la pantalla de excepción que se muestra. Adéntrate en las excepciones internas hasta que obtengas una pista de dónde se origina.

    • Vea la pila de llamadas para ver qué código de línea está causando esta excepción. Esto proporcionará pistas para resolver el problema.


Mi problema era un estilo perdido. Había anulado una plantilla de control con un pincel personalizado como ese:

<Style x:Key="MyCustomStyle" TargetType="Thumb"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Thumb"> .... <TextBlock Foreground="{StaticResource MyCustomBrush}"

y me faltaba mi definición de MyCustomBrush, así:

<SolidColorBrush x:Key="MyCustomBrush" Color="#FFAC0909"/>

y luego BOOM, la aplicación no se inició y recibí ese mensaje de error COM.


Para mí, este fue un error de análisis XAML. En una plantilla de datos, tenía una S extra entre dos etiquetas (probablemente porque presioné S en vez de CTRL + S ). Por ejemplo...

<DataTemplate> <Border/>s </DataTemplate>

Por lo tanto, le sugiero que busque XML mal formateado en la vista que causa esta excepción cuando se muestra.


Para mí, lo reduje a un control SplitButton que descargué de CodePlex hace siglos. Actualicé la solución de Silverlight 4 a Silverlight 5 y me golpearon con este error. Pude reducirlo comentando el XAML a todos los controles y luego lo comencé a descomponer uno a uno hasta que se activó de nuevo el error:

System.Reflection.TargetInvocationException was unhandled by user code Message=Exception has been thrown by the target of an invocation. StackTrace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Delegate.DynamicInvokeImpl(Object[] args) at System.Delegate.DynamicInvoke(Object[] args) at Homexaml_3.BindingOperation(Object BindingState, Int32 , Action ) InnerException: Message=Error HRESULT E_FAIL has been returned from a call to a COM component. StackTrace: at MS.Internal.XcpImports.CheckHResult(UInt32 hr) at MS.Internal.XcpImports.UIElement_Measure(UIElement element, Size availableSize) at System.Windows.UIElement.Measure(Size availableSize)

Lo que solucionó fue eliminar manualmente las referencias obsoletas System.Windows.Control y System.Windows.Controls.Toolkit y luego volver a agregarlas desde la carpeta Silverlight 5 SDK.

Espero que ayude a alguien (¡y me ayude!) Si vuelve a suceder unos meses después.


Recibí este error recientemente en VS 2013 para un proyecto de Silverlight 5. Ninguno de los anteriores funcionó para mí. Por extraño que parezca, se trataba de un problema de subprocesamiento (normalmente estoy acostumbrado a una excepción que explica esto si estoy tratando de crear elementos UIE en un hilo de fondo por error).

Envolver mi código que agrega UIElements a la página principal con Dispatcher.BeginInvoke resolvió el problema:

Dispatcher.BeginInvoke(() => { // your code });


Solucioné este error borrando el archivo XAML y agregué uno nuevo de agregar un nuevo elemento. Luego pegué los códigos XAML que estaban allí en el archivo anterior.


También tuve este error y descubrí que este problema está relacionado con el hecho de que no se hayan agregado todos los ensamblajes requeridos a su proyecto. En mi caso, estaba usando un UserControl que depende de Silverlight Toolkit y no he agregado esta referencia. Acabo de agregar la referencia y todo resuelto :)


Tuve esta excepción y me volví loco. Le aconsejaría que compruebe si recientemente ha instalado un componente que tiene posibles elementos de espacio de nombres en conflicto. En mi caso, instalé el kit de herramientas de Windows Phone, que tenía elementos que se llamaron de manera similar con el kit de herramientas de stock en el teléfono de Windows. Asap Desinstalé esto del administrador de paquetes Nuget, todo volvió a la normalidad.


Tuve este error en mi página xaml y no hubo errores de sintaxis. Limpiar y reconstruir el proyecto resolvió mi problema. fyi ...


Tuve este error por problemas con XAML. Lo extraño fue que me faltaron recursos utilizados por los atributos de Style y Margin , lo que significa que la aplicación funciona bien, e incluso el reafilado solo informa una ''pista''.

Una vez que resolví esos problemas, mi "Error HRESULT E_FAIL ha sido devuelto por una llamada a un componente COM". desapareció Sin embargo, como otros han dicho, este es un error vago, muy difícil de depurar. En este caso, he heredado un gran proyecto con cientos de mensajes VS y ReSharper con diversa severidad. ¡Falta de StaticResource en los atributos de Style no fue el primer lugar que revisé!


Tuve este error usando los controles actuales de SL4 Telerik. Un problema similar se ha informado here con una solución ... de algún tipo. El problema parece ser la forma en que Expression Blend administra la caché de controles.


Tuve este problema mientras codificaba video y audio en vivo (usando Microsoft Expression ) y el siguiente fragmento de código arroja la excepción al azar :

// Set bitrate liveJob.OutputFormat.VideoProfile.Bitrate = new ConstantBitrate(2500); // Set Video size liveJob.OutputFormat.VideoProfile.Size = new Size(320,240);

hasta que descubrí que la segunda línea arroja la excepción mientras que la primera sigue ejecutándose en otro hilo.

y, por supuesto, fue mi culpa: llamé al método en código y también lo llamó el evento Click ...