在VS 2010中创建了一个新的WinForm项目。添加了一个新的UserControl WPF。
出现了两个编译时错误:
错误1类型'System.Windows.Markup.IQueryAmbient‘在未引用的程序集中定义。必须添加对程序集'System.Xaml,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089‘的引用。D:\Projets\WindowsFormsApplication2\UserControl1.xaml.cs 20 26 WindowsFormsApplication2 错误2在名称空间'System.Windows.Markup‘中找不到类型名称'IComponentConnector’。此类型已转发给程序集“System.Xaml、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089”,请考虑向该程序集添加引用。D:\Projets\WindowsFormsApplication2\obj\x86\Debug\UserControl1.g.cs 41 100 WindowsFormsApplication2
NB.
当向PresenationCore.dll项目添加新的WPF UserControl时,会自动添加像PresenationFramework.dll、WindowsBase.dll这样的引用,那么为什么System.Xaml.dll也不添加呢?
==============
在Microsoft上报告了Bug。
发布于 2010-12-08 13:14:34
听起来你只需要参考一下System.Xaml.dll
在VS中这是否是一个bug;嗯,我想模板可以添加那个引用--我可以复制它,所以它可能值得登录连接。
发布于 2010-12-08 13:15:24
这个项目是从.NET 3.5迁移到Net4.0的吗?如果是,接口现在驻留在System.Xaml中,您需要引用它。
发布于 2018-02-25 05:52:01
在我的例子中,"System.Xaml“是自动添加到项目中的,但是给出了相同类型的错误:
在名称空间'System.Windows.Markup‘中找不到类型名称'IComponentConnector’。此类型已转发给程序集'System.Xaml,Version=4.0.0.0,Culture=neutral,.‘。考虑添加对该程序集的引用。
我解决了这个问题,只需从引用中删除"System.Xaml“,然后从框架中再次添加"System.Xaml,Version=4.0.0.0”。
https://stackoverflow.com/questions/4387812
复制相似问题