标签: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 没有问题
很是郁闷 看来以后中文名称路径问题还是需要注意 不过我可以不再中文路径下 但是客户也许会安装在中文路径下
没办法我重写了下 出问题地方
不清楚还有没有更好的解决办法 希望提供谢谢
标签:ar os 使用 for sp 问题 cti 代码 bs
原文地址:http://www.cnblogs.com/qingducx/p/4079875.html