我刚刚将PostSharp 3.0.32.0安装到我的.net 4.5 WPF解决方案中,我收到以下异常:
Error 13 Unhandled exception (3.0.32.0, 32 bit, CLR 4.5, Release): PostSharp.Sdk.CodeModel.BindingException: Cannot find a method named 'NotifyOfPropertyChange' with signature '(string) : void' in scope 'Caliburn.Micro.Conductor`1::Collection::OneActive' (module = 'Caliburn.Micro.dll').
at PostSharp.Sdk.CodeModel.Collections.MethodDefDeclarationCollection.GetMethod(String name, IMethodSignature signature, BindingOptions bindingOptions)
at PostSharp.Sdk.CodeModel.MethodRefDeclaration.GetMethodDefinition(BindingOptions bindingOptions)
at PostSharp.Sdk.Extensibility.Tasks.IndexGenericInstancesTask.Execute()
at PostSharp.Sdk.Extensibility.Project.ExecutePhase(String phase)
at PostSharp.Sdk.Extensibility.Project.Execute()
at PostSharp.Hosting.PostSharpObject.ExecuteProjects()
at PostSharp.Hosting.PostSharpObject.InvokeProject(ProjectInvocation projectInvocation) C:\Projects\nextgen\NextGen.Client\POSTSHARP NextGen.Client
我们正在使用带有Autofac的Caliburn.Micro 1.5.2。我们也在使用PropertyChanged.Fody和Validar.Fody。
我已经创建了一些基本方面并应用了它们,但后来删除了它们。除非我在WPF项目上禁用PostSharp,否则会出现错误。
我试图在一个使用Caliburn.Micro.Start创建的简单示例项目中进行复制(仅稍微修改以使用OneActive导体),安装了PostSharp和PropertyChanged.Fody,但无济于事 - 它构建没有问题。< / p>
之前有没有人遇到过这个问题?
干杯,
安德鲁
答案 0 :(得分:1)
找出postharp为什么首先要查找NotifyPropertyChanged方法。 Fody应该是那样做的人。您是否已将PostSharp配置为执行NotifyPropertyChanged以及Fody?
我的猜测是问题在于使用2个IL重写器并且它们不能很好地协同工作。我会删除PostSharp并仅使用Fody。
答案 1 :(得分:0)
在这种情况下,我将通过在自己的程序集中隔离PostSharp代码来解决问题。