首页新闻找找看学习计划

一个类型同时存在于两个dll中怎么解决?

0
悬赏园豆:5 [已解决问题] 解决于 2014-07-02 12:56

请教个问题,PresentationFramework.dll和网上下载的WpfToolKit.dll都有VisualStateManager这个类,还都用同一个命名空间,怎么处理啊,我调用VisualStateManager类就提示同时存在于两个dll中.WpfToolKit也没有源码修改不了命名空间。

翻墙小龙虾的主页 翻墙小龙虾 | 初学一级 | 园豆:34
提问于:2014-07-01 16:00
< >
分享
最佳答案
0

首先它们两个的版本肯定不一样,对吧!逻辑是这样的,因为 WpfToolKit.dll 要引用 PresentationFramework.dll,如果存在 VisualStateManager 冲突,那么 WpfToolKit.dll 就无法编译成功,因此,WpfToolKit.dll 引用的 PresentationFramework.dll 中肯定没有 VisualStateManager 类。所以,最先想到的解决方案就是升级或降级 WpfToolKit.dll 的版本到你现在使用的 PresentationFramework.dll 版本。

PS: .Net 4.0 以及集成了 WpfToolKit,不必额外引用 WpfToolKit 。

收获园豆:5
Launcher | 高人七级 |园豆:45040 | 2014-07-01 16:06

问题的症结就是你说的这样,但是WpfToolKit貌似只到v3.5。你说4.0集成了Wpdtoolkit可是我没有找到accordion这个控件呢,我引用wpftoolkit就是为了用这个控件。结果出现VisualStateManager冲突

翻墙小龙虾 | 园豆:34 (初学一级) | 2014-07-01 18:01

@翻墙小龙虾: 我的意思是 WpfToolKit 停止的更新的原因,就是因为控件被 .Net 收编了,至于是否全部收编,我就不知道了。但是有一点我是可以肯定的,真的是"WpfToolKit也没有源码修改不了命名空间。",事实上是有源码的,http://wpf.codeplex.com/SourceControl/latest,再不济,你不会反编译吗?

Launcher | 园豆:45040 (高人七级) | 2014-07-01 18:16
其他回答(3)
0

别名

 

using MIO=System.IO;

using YIO=System.IO;

Yu | 园豆:12944 (专家六级) | 2014-07-01 16:39
0

给命名空间起别名

或者每次使用的时候,都要加上完整的命名空间

袁家小黑球 | 园豆:1045 (小虾三级) | 2014-07-02 12:44
0

使用外部别名解决冲突问题,https://msdn.microsoft.com/zh-cn/library/ms173212.aspx

步骤:

1、右击Wpftoolkit程序集-属性打开属性窗口

2、将别名任意其它名称

magicshow | 园豆:204 (菜鸟二级) | 2015-11-11 09:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册