Visual studio 调用COM组件时返回错误HRESULT E_FAIL
在Silverlight 4应用程序中;这个错误是什么意思 “调用COM组件时返回错误HRESULT E_FAIL。”Visual studio 调用COM组件时返回错误HRESULT E_FAIL,visual-studio,silverlight,silverlight-4.0,Visual Studio,Silverlight,Silverlight 4.0,在Silverlight 4应用程序中;这个错误是什么意思 “调用COM组件时返回错误HRESULT E_FAIL。” 这是一个非常普遍的错误。VS调试器在调试时没有指向错误的确切位置 我使用当前的SL4 Telerik控件时出现此错误。报告了一个类似问题的解决方案。。。差不多。问题似乎在于Expression Blend管理控件缓存的方式。此问题的大部分原因与组件设计相关。 你只要在设计上面对这个问题 解决很容易,但需要时间:)清理项目并重建所有。当你再次进入设计时,你应该看到一切都很好 我希
这是一个非常普遍的错误。VS调试器在调试时没有指向错误的确切位置 我使用当前的SL4 Telerik控件时出现此错误。报告了一个类似问题的解决方案。。。差不多。问题似乎在于Expression Blend管理控件缓存的方式。此问题的大部分原因与组件设计相关。 你只要在设计上面对这个问题 解决很容易,但需要时间:)清理项目并重建所有。当你再次进入设计时,你应该看到一切都很好 我希望这有帮助
如果您最近看到此异常,请尝试重新安装silverlight sdk4。这是一个安全和权限问题。查看IIS并确保已启用集成安全性。然后将应用程序保护级别设置为“中”(如果高,则可能是结果)。然后检查Web.Config文件。确保模拟已关闭
这应该会有帮助。我也有这个错误,我发现这个问题与没有将所有必需的程序集添加到项目中有关。在我的例子中,我使用了一个依赖于Silverlight工具包的UserControl,但我没有添加这个引用。
我刚刚添加了引用,所有问题都解决了:)这里有一种生成此错误的方法,这是我今天偶然发现的。我们在XAML中有以下按钮:
<Button x:Name="button" Click="Button_Click" Content="Click me" />
当我点击按钮时,我得到了前面提到的错误。如果将NaN
替换为PositiveInfinity
或NegativeInfinity
,则会出现相同的错误
有趣的是,如果
Thickness
构造函数的第一个参数包含NaN
而不是第二个参数,我会收到不同的错误消息。这是一个老问题,但我想我会给出我的答案,因为我是通过谷歌搜索完全相同的问题找到这个线程的
在我的例子中,我从web上复制了一些示例XAML来开始使用SilverlightToolkit4。该示例XAML包含一个简单的按钮,其中包含一个与我的代码隐藏中实际存在的任何处理程序无关的单击事件处理程序。起初我没有注意到这个简单的问题,因为编译器没有给我错误消息,我只是在运行时看到上面的“error HRESULT E_FAIL已从调用COM组件返回”消息。只有当我将我的示例XAML复制到一个全新的Silverlight应用程序中而没有任何其他内容时,才在编译时发现了真正的潜在问题
因此,如果您在运行时收到相同的错误消息,我的建议是仔细检查您的XAML是否存在任何错误,这些错误本应在编译时被发现,但由于某种原因最终成为上面提到的运行时错误。为了进行调试,您可以执行我所做的操作,在没有其他内容的独立Silverlight应用程序中隔离导致错误的代码,然后查看是否像我一样,您会收到一条更有用的错误消息来指导您
HTH.我由于XAML的问题而产生了这个错误。奇怪的是,我缺少
Style
和Margin
属性使用的资源,这意味着应用程序运行良好,甚至连resharper都只报告“提示”
一旦我解决了这些问题,我的“错误HRESULT E_FAIL已从对COM组件的调用中返回。”就消失了。正如其他人所说,这是一个模糊的错误,很难调试。在这种情况下,我继承了一个大型项目,其中包含100条严重程度不同的VS和ReSharper消息-在
Style
上缺少StaticResource
属性不是我首先检查的地方 我在编码实时视频和音频(使用Microsoft Expression)时遇到了这个问题,下一段代码随机抛出异常:
// Set bitrate
liveJob.OutputFormat.VideoProfile.Bitrate = new ConstantBitrate(2500);
// Set Video size
liveJob.OutputFormat.VideoProfile.Size = new Size(320,240);
直到我发现第二行抛出异常,而第一行仍在另一个线程中运行
当然,这是我的错-我在代码中调用了该方法,它也被单击事件调用…在我的情况下:
我创建了一个
class MyControl : ContentControl {
}
默认情况下,该类不是公共的,XAML无法加载它并引发异常
调用COM组件时返回错误HRESULT E_FAIL
只要将类的范围更改为public,错误就会消失
希望这有帮助
另外,微软应该提供更多的信息,而不仅仅是在没有任何堆栈跟踪的情况下抛出一条神秘的错误消息。我在我的xaml页面中遇到了这个错误,并且没有语法错误。清理和重建项目解决了我的问题。仅供参考…我遇到了这个例外,发疯了。我建议您检查最近是否安装了可能存在冲突命名空间项的组件。在我的例子中,我安装了windows phone工具包,其中的项目与windows phone上的库存工具包同名。
一旦我从Nuget软件包管理器中卸载了它,一切都恢复正常 > P>这是当我们在查询Team Foundation Server:时尝试使用MySof.Team基金会库时最终解决的问题。
class MyControl : ContentControl {
}
<DataTemplate>
<Border/>s
</DataTemplate>
<Style x:Key="MyCustomStyle" TargetType="Thumb">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Thumb">
....
<TextBlock Foreground="{StaticResource MyCustomBrush}"
<SolidColorBrush x:Key="MyCustomBrush" Color="#FFAC0909"/>
Margin="0,-20,0"
Margin="0,-20,0,0"
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)
Dispatcher.BeginInvoke(() =>
{
// your code
});
update-package : Failed to add reference to 'System.Web.Razor'.
Error HRESULT E_FAIL has been returned from a call to a COM component.
Tools (menu)
-Options...
--Text Editor
---C/C++
---Advanced
----Browsing Database Fallback
-----Fallback Location