我刚刚将一个项目从 VS2008/.NET 3.5/PostSharp 1.5 升级到 VS2010/.NET4.0/PostSharp 2.0。
现在,在为系统运行单元测试时,我会遇到以下形式的数百个异常:
System.BadImageFormatException:试图加载格式不正确的程序。(HRESULT 的异常:0x8007000B)在 COMPANY.Data.NHibernate.BaseRepository.c__Binding`1.Invoke(Object& instance, Arguments arguments, Object aspectArgs) 在 COMPANY.Aop.TransactionAspectAttribute 的 PostSharp.Aspects.Internals.MethodInterceptionArgsImpl.Proceed()。 OnInvoke(MethodInterceptionArgs context) 在 C:\COMPANY\Code\COMPANY-NET4.0\Core\Aop\TransactionAspectAttribute.cs:第 68 行 COMPANY.Data.NHibernate.BaseRepository.Save[T](T scoreBigModel) 在 C:\ COMPANY\Code\COMPANY-NET4.0\Core\DataAccess\NHibernate\BaseRepository.cs:COMPANY.UnitTests.DataAccess.NHibernate.when_saving_a_canonical_term 的第 102 行。<.ctor>b__5() 在 C:\COMPANY\Code\COMPANY- NET4.0\UnitTests\DataAccess\NHibernate\CanonicalTermRepositorySpecs.cs:
当我在程序集上运行 peverify.exe 时,我看到以下形式的数百个错误。泛型方法似乎总是存在问题:
[IL]:错误:[C:\COMPANY\Code\COMPANY-NET4.0\Core\bin\Debug\COMPANY.Core.dll:COMPANY.Data.NHibernate.ActivationRepository+c__Binding::Invoke][偏移量 0x0000008D][发现 ref 'PostSharp.Aspects.Internals.MethodBinding'][expected ref 'PostSharp.Aspects.Internals.MethodBinding`1[COMPANY.Models.Activation]'] 堆栈上的意外类型。
[IL]:错误:[C:\COMPANY\Code\COMPANY-NET4.0\Core\bin\Debug\COMPANY.Core.dll:COMPANY.Data.NHibernate.ActivationRepository+c__Binding::Invoke][偏移量 0x00000056][发现 ref 'PostSharp.Aspects.Internals.MethodBinding`1[COMPANY.Models.Activation]'][expected ref 'PostSharp.Aspects.Internals.MethodBinding'] 堆栈上的意外类型。
我正在运行最新版本的 PostSharp 2.0 RC。