Mono.Cecil能不能处理一个Silverlight 5集 [英] Mono.Cecil fails to process a Silverlight 5 assembly

查看:249
本文介绍了Mono.Cecil能不能处理一个Silverlight 5集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我想读一个Silverlight 5通过 Mono.Cecil能做到装配 0.9.3.0版本,我得到了以下异常:

When I am trying to read a Silverlight 5 assembly via Mono.Cecil version 0.9.3.0, I am getting the following exception:

System.NotSupportedException: Version not supported: 5.0.5.0
------   
at Mono.Cecil.BaseAssemblyResolver.GetCorlib(AssemblyNameReference reference) in C:\programming\mono.cecil\jbevain-cecil-5df660e\Mono.Cecil\BaseAssemblyResolver.cs:line 200
------  
at Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name) in C:\programming\mono.cecil\jbevain-cecil-5df660e\Mono.Cecil\BaseAssemblyResolver.cs:line 117
....

这是因为在Silverlight项目中引用的是MSCORLIB 5.0.5.0而GetCorlib功能似乎并没有被处理这些案件。

It happens because the reference in the Silverlight project is to mscorlib 5.0.5.0 while the GetCorlib function doesn't seem to be handling these cases.

有没有解决这个问题?

推荐答案

丝丝的默认解析器不处理的Silverlight程序集。这很容易修复。只是通过自己的解析器程序集,并确保它能够解决的Silverlight程序集:

Cecil's default resolver doesn't handle Silverlight assemblies. It's easy to fix. Just pass your own resolver to your assemblies, and make sure it can resolve Silverlight assemblies:

var resolver = new DefaultAssemblyResolver ();
resolver.AddSearchDirectory ("path/to/silverlight/assemblies");

var assembly = AssemblyDefinition.ReadAssembly (
    assemblyFile,
    new ReaderParameters { AssemblyResolver = resolver });

另外,我强烈建议你从0.9.3升级到新版本。

Also, I strongly suggest you update from 0.9.3 to a newer release.

这篇关于Mono.Cecil能不能处理一个Silverlight 5集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆