我有问题试图让Mono.Cecil在使用TypeReference时使用正确的“mscorlib”版本。我将一个新变量添加到一个Method中,并沿着以下方式进行操作。但是,它添加了对4.0 mscorlib的引用,而不是2.0 mscorlib。我必须使用.NET Framework 4.5运行此应用程序,因此我无法使用较低版本,除非我重新编写其他人无法访问的代码。Mono.Cecil - 错误的mscorlib版本
TypeReference typeReference = CSharpModule.Import(Type.GetType("System.Nullable`1[[System.Boolean, mscorlib, Version=2.0.0.0]], mscorlib, Version=2.0.0.0"));
methodBody.Variables.Add(new VariableDefinition(typeReference));
我试图围绕搜索有关如何获取正确的版本,我显然必须使用塞西尔类型系统的答案,但我无法找到如何做到这一点的任何例子。
感谢您的领导,我通过执行以下操作可以解决此问题。 assemblyDefinition.MainModule.GetType(“System.Nullable'1 [[System.Boolean]]”,true) – 7H3LaughingMan
@ 7H3LaughingMan很高兴知道这一点。那么你应该发布你的答案并接受它。 –