码迷,mamicode.com
首页 > 其他好文 > 详细

BUG

时间:2014-11-06 21:40:40      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:ar   os   使用   for   sp   问题   cti   代码   bs   

一个让我很郁闷的问题。。。  使用Prism  module开发的时候 用目录方式加载 老是提示  Failed to load type for module  XXXXX . 可是跟踪代码什么的 都能看到我的 module对象。很是郁闷。

最后在项目中加入了Prism的源代码才找到原因。

在 Microsoft.Practices.Prism.Modularity.FileModuleTypeLoader(ModuleInfo moduleInfo)中

moduleInfo.Ref 返回的module的路径 是

file:///F:/XXXXX/abc.dll形式的

在Microsoft.Practices.Prism.Modularity.AssemblyResolver.LoadAssemblyFrom(string assemblyFilePath) 中

 Uri assemblyUri = GetFileUri(assemblyFilePath); //得到资源标识符

AssemblyName assemblyName = AssemblyName.GetAssemblyName(assemblyUri.LocalPath);//根据资源的本机地址获取程序集名称

因为assemblyFilePath 是file:///F:/XXXXX/abc.dll形式的,当XXXX有中文路径的时候  assemblyUri.LocalPath就不会返回一个正确的值 所以报错提示 Failed to load type for module  XXXXX
我测试了 如果只是使用F:/XXXXX/abc.dll 创建Uri 没有问题 
很是郁闷  看来以后中文名称路径问题还是需要注意 不过我可以不再中文路径下 但是客户也许会安装在中文路径下 
没办法我重写了下 出问题地方
不清楚还有没有更好的解决办法  希望提供谢谢

 

BUG

标签:ar   os   使用   for   sp   问题   cti   代码   bs   

原文地址:http://www.cnblogs.com/qingducx/p/4079875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!