Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么自定义控件在设计器中引发异常,但在运行时仍然有效?_C#_Wpf_Visual Studio 2010_Wpf Controls - Fatal编程技术网

C# 为什么自定义控件在设计器中引发异常,但在运行时仍然有效?

C# 为什么自定义控件在设计器中引发异常,但在运行时仍然有效?,c#,wpf,visual-studio-2010,wpf-controls,C#,Wpf,Visual Studio 2010,Wpf Controls,我有一个用于USB摄像头图像的第三方显示控件,设置在自己的窗口中,使用XAML,如下所示: 在设计窗格中,将显示System.IO.FileNotFoundException(在单击此处重新加载设计器的链接下方)。错误详细信息包括: 无法加载文件或程序集“TCR,版本=2.1.3.0,区域性=中性,PublicKeyToken=32fe4fab5501c8fe”或其依赖项之一 TCC.dll(从我的XAML中引用)使用TCR.dll,它们各自的依赖关系很多。我不得不将大量DLL复制到\bin

我有一个用于USB摄像头图像的第三方显示控件,设置在自己的窗口中,使用XAML,如下所示:


在设计窗格中,将显示
System.IO.FileNotFoundException
(在单击此处重新加载设计器的链接下方)。错误详细信息包括:

无法加载文件或程序集“TCR,版本=2.1.3.0,区域性=中性,PublicKeyToken=32fe4fab5501c8fe”或其依赖项之一

TCC.dll(从我的XAML中引用)使用TCR.dll,它们各自的依赖关系很多。我不得不将大量DLL复制到
\bin\Debug
\bin\Release
文件夹中。它们是否也应该复制到其他地方(或者取而代之)

TCR.dll本身实际上是版本2.1.3。1025,因此这可能是问题所在,也可能不是问题所在,但是,我在运行时没有收到此类投诉。项目生成时没有警告,当我执行调试或发布生成时,第三方控制窗口正常工作


如果您对此有任何建议,我们将不胜感激,谢谢

这个答案适合我:

我使用的第三方控件似乎引用了非托管DLL,所以现在所有内容都加起来了


我已将我的问题标记为重复,尽管它提供了一些原始帖子中没有的额外关键字,可能对未来的搜索者有所帮助。

我只能提供一些建议:启动两个Visual Studio副本,并从实例
a
使用
Debug |附加到进程
附加到实例
B
。然后在实例
B
中,打开有故障的第三方控件的项目,打开出现问题的设计器,然后查看实例
a
是否发现任何异常。您可能需要先转到
Debug | Exceptions
并为实例
A
中的“公共语言运行时异常”启用“抛出”。谢谢,Matthew。这是一个巧妙的技巧,但我似乎无法抓住设计师的错误。当我的应用程序启动时,我确实尝试
抛出新的System.IO.FileNotFoundException()
,但这只在实例
B
中被捕获。我为其他异常类型启用了“抛出”,以防万一。有没有更好的方法可以在实例
B
中故意引发CLR异常,以检查我是否正确附加了实例
a
?您可能会创建一个空的默认用户控件,并将其添加到实例
B
中项目的表单中,然后更改其构造函数以引发异常,然后在中打开表单。(…cont)也就是说,在IDE的设计窗格中打开表单。感谢您的建议,这种技术肯定会派上用场。