C# 使用Telerik组件正确部署应用程序
我有以下项目结构:C# 使用Telerik组件正确部署应用程序,c#,.net,wpf,telerik,C#,.net,Wpf,Telerik,我有以下项目结构: 类库 参考Telerik控件 主机应用程序 参考类库 类库中有几个usercontrols,其中包含telerik组件。我有一个宿主应用程序,它从类库托管这些用户控件 现在的问题是,尽管在库中引用了telerik DLL,但我仍然必须在主机应用程序中引用telerik DLL。或者在运行时抛出XamlParseException。不过,它编译时没有错误 类型的第一次机会例外 中出现“System.Windows.Markup.XamlParseException”
- 类库
- 参考Telerik控件
- 主机应用程序
- 参考类库
XamlParseException
。不过,它编译时没有错误
类型的第一次机会例外
中出现“System.Windows.Markup.XamlParseException”
PresentationFramework.dll
其他信息:无法加载文件或程序集
'Telerik.Windows.Controls.GridView,PublicKeyToken=5803cfa389c90ce7'
或者它的一个依赖项。系统找不到指定的文件
为什么会这样?为什么需要复制DLL
我正在使用Telerik dll,其版本为2015.2.623.45
复制此问题: 我们只需要创建一个带有一个usercontrol的库
<UserControl>
<Grid>
<telerik:RadGridView></telerik:RadGridView>
</Grid>
</UserControl>
然后创建另一个引用此类库的项目
<Window>
<Grid>
<wpfApplication1:UserControl1/>
</Grid>
</Window>
试着运行它
(为了简洁起见,我省略了xmlns定义)取自以下解决方案: A) 添加对主机应用程序的引用 B) 在类库中添加伪代码,以便编译器能够检测 正在使用引用,然后将其复制到主机应用程序Bin文件夹中 C) 添加生成事件以强制复制DLL 仅仅拥有XAML代码是不够的,因为编译器不会对其进行计算,以查看XAML依赖于哪个DLL 我现在选择了选项B,但我倾向于选项A)作为最佳实践
如果您在某个时候开始用C#操作telerik控件,一切都将按预期开始工作。在实际使用DLL的项目文件中,将此添加到
部分:
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
true
现在,DLL将被复制到该项目和所有引用项目的输出文件夹。这正是我所做的。谢谢你的解释。