【发布时间】:2016-01-27 08:55:30
【问题描述】:
我有以下项目结构:
- 类库
- 参考 Telerik Controls
- 主机应用程序
- 参考类库
类库有几个用户控件,其中包含 Telerik 组件。我有一个宿主应用程序,它承载来自类库的这些用户控件。
现在的问题是,尽管在库中引用了telerik dll,我仍然必须在我的主机应用程序中引用telerik dll。否则它会在运行时抛出XamlParseException。但是它编译没有错误。
类型的第一次机会异常 'System.Windows.Markup.XamlParseException' 发生在 PresentationFramework.dll
附加信息:无法加载文件或程序集 'Telerik.Windows.Controls.GridView,PublicKeyToken=5803cfa389c90ce7' 或其依赖项之一。系统找不到指定的文件。
为什么会这样?为什么需要复制 dll。
我正在使用版本为 2015.2.623.45 的 Telerik dll
重现此问题: 我们可以只用一个用户控件创建一个库
<UserControl>
<Grid>
<telerik:RadGridView></telerik:RadGridView>
</Grid>
</UserControl>
然后创建另一个引用该类库的项目
<Window>
<Grid>
<wpfApplication1:UserControl1/>
</Grid>
</Window>
并尝试运行它。
(为简洁起见,我省略了 xmlns 定义)
【问题讨论】: